快速开始¶
安装¶
Rust 加速路径与 MCP runtime(仓库开发):
最小示例¶
from pulsing.forge import ForgeEnvironment, LocalToolSession
env = ForgeEnvironment(
cwd=".",
sandbox_policy="off",
session=LocalToolSession(token_budget=128_000),
)
rt = env.runtime()
out = rt.call_tool("Glob", {"pattern": "*.md", "path": "."})
print(out.content, out.is_error)
maturin develop 后默认 HybridForgeRuntime:Rust 优先 + Python fallback,32 工具均可调用。
Host 会话钩子¶
request_user_input、update_plan 等通过 ToolSession 回调 Host:
from pulsing.forge import ForgeEnvironment, LocalToolSession
session = LocalToolSession()
session.user_input = lambda args: {"answers": {"confirm": "yes"}}
env = ForgeEnvironment(session=session)
env.runtime().call_tool("request_user_input", {"questions": [...]})
隔离 Worker(Pulsing Actor)¶
import pulsing as pul
from pulsing.forge import ToolWorkerActor, ToolWorkerConfig
await pul.init()
try:
worker = await ToolWorkerActor.spawn(ToolWorkerConfig(cwd="."), public=False)
await worker.ping()
await worker.Read(file_path="README.md")
finally:
await pul.shutdown()
统一部署见 Pulsing 部署(LOCAL / DEDICATED / SHARED)。
REPL(无 LLM)¶
直接调工具、保存 JSONL trace、逐步 replay。设计说明:Session REPL。
验证¶
示例:examples/python/forge_minimal.py