Pre-alpha 文档
不启 HTTP,也能运行可恢复的强类型 Agent。
用一次有界 run 调用完成提交与解码,同时保留 PostgreSQL 准入、鉴权、幂等恢复、真实 Worker 与 Maintenance。
一次调用完成提交、等待与强类型解码
Submission Key 由调用方保存。Key 和内容完全相同的重试会恢复原 Run;同 Key 不同内容会失败关闭。只有终态 Provenance、完整记账和固定 Output Schema 全部通过后,才会返回强类型结果。
let agent = runtime
.agent(codec, authenticated_caller)?
.with_options(InProcessAgentRunOptions::new(
Duration::from_millis(50),
Duration::from_secs(30),
)?);
let outcome = agent.run(InProcessAgentRequest::new(
caller_retained_key,
ChatRequest { message },
BudgetLimits::empty(),
)).await?; cargo check -p stateknot --example in_process_agent --locked 运行真实接入 DeepSeek 的 Agent
可执行示例将 DeepSeek Responses、自动生成的 JSON Schema、PostgreSQL、精确 Key
鉴权、持久化模型调用、Token 记账及自持有的 Worker/Maintenance
连成完整链路。 配置文件不含密钥;通过密钥管理系统注入 DATABASE_URL 和
DEEPSEEK_API_KEY,并保存同一配置和 Submission Key 以备恢复。
cargo run -p stateknot --example deepseek_agent --locked -- /private/path/deepseek-agent.json 配置格式、PostgreSQL 角色/TLS 边界及当前限制见完整使用与恢复指南。项目仍为预发布状态,不宣称已通过生产发行验收。
保留所有可恢复的非终态信息
成功结果包含强类型 Output 与终态
Snapshot;失败、取消与隔离状态也保留完整的 Public Durable
Snapshot。等待超时只返回 Pending,绝不会取消 Run。Future 被
Drop、响应丢失或进程替换后,都应使用同一 Key 与内容恢复。
关闭过程显式且可 Join:先排空 Worker,再关闭 Maintenance。直接 Drop 只能
发起清理;应用应始终等待 shutdown 并检查两个 Role Report。
不改写数据,迁移到 AgentHost
生产 Ingress 复用相同 Agent Descriptor、Registry、Caller Identity、 Submission Key 与 PostgreSQL 状态。停止本地新提交并 Join 进程内角色后,把 已保存 Key 与请求发给认证 Agent HTTP v1;生产 Worker 会依据持久化证据恢复 所有非终态 Run。
阅读完整执行与迁移指南,或继续查看Agent HTTP v1。