开发与工程 durable-executiondeterministic-replaytypescript-runtimecheckpointinghuman-in-the-loopopenai-compatible

Chidori

把 TypeScript 智能体运行变成可持久化、可回放、可恢复的执行。

FollowAgents 评估 · FARS-2.1
谨慎使用
60/ 100 五分制 3.0 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全16 / 29 · 2.8/5

证据显示:README 明确说明默认拒绝策略、能力注入、资源限制(sandbox-model.md),以及运行前对工具调用、网络访问、工作区写入的确认(--trusted 标志)。数据流透明性:所有副作用作为 host call 记录,可重放。敏感数据处理:提到凭据存储(~/.chidori/credentials.json),但未详细说明加密或保护措施。依赖安全:提到 npm 包 SHA-512 验证,但未提供依赖漏洞扫描证据。外部影响:有沙箱和确认机制。回滚:通过重放和检查点实现。来源归属:未验证发布者,但仓库有明确的 Apache-2.0 许可证。扣分:敏感数据处理和依赖安全证据不足。

2可靠稳定9 / 14 · 3.2/5

证据显示:README 和文档一致描述核心机制(host call、重放、恢复)。依赖可用性:提供预编译二进制和多种安装方式,但未提供依赖可用性保证。失败消息:文档提到错误处理,但未提供具体失败消息示例。扣分:依赖可用性和失败消息证据不足。

3适用触发12 / 18 · 3.3/5

证据显示:明确目标受众(AI 编码代理、开发者),提供多种场景(聊天、工具使用、人类参与)。能力边界:文档列出 host 函数和沙箱限制。触发精度:通过 --trusted 和确认机制控制。环境适配:支持多种平台和提供者。扣分:无重大扣分。

4规范维护10 / 18 · 2.8/5

证据显示:信息架构清晰(README、docs/、llm.txt)。安装说明详细。命名稳定:API 名称一致。示例和 FAQ 丰富。已知限制:文档提到兼容性警告,但未系统列出。许可证:Apache-2.0。版本控制:有 crates.io、npm、PyPI 版本,但未提供 CHANGELOG。维护责任:有 CI 和贡献指南,但未明确维护者。扣分:已知限制和版本控制证据不足。

5有效结果9 / 13 · 3.5/5

证据显示:输出可用性:提供 CLI 和 SDK,输出格式明确。边际价值:强调零成本重放和确定性,有独特价值。成本效益:提供成本节约机制(缓存、重放)。扣分:无重大扣分。

6证据核验4 / 8 · 2.5/5

证据显示:声明可追溯:README 和文档详细说明功能。跨来源佐证:有 CI 测试和文档,但未提供独立验证。事实与推断分离:文档区分事实和设计目标。扣分:跨来源佐证不足。

证据充分度: 评估于 2026年8月9日 审查版本 4bd624028cda
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 发布者身份未验证,需谨慎评估供应链风险。
  • 敏感数据处理细节不足,凭据存储方式需进一步审查。
  • 依赖安全仅提及 SHA-512 验证,未提供漏洞扫描证据。
  • 已知限制未系统列出,可能隐藏兼容性问题。
  • 版本控制缺少 CHANGELOG,变更追踪不透明。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Chidori 是一个以 Rust 二进制程序为核心的智能体运行时,用于直接执行普通异步 TypeScript 文件。智能体通过运行时注入的 "chidori:agent" 虚拟模块调用 chidori 对象;LLM 调用、工具调用和 HTTP 请求都会作为 host call 被记录。运行可在 host safepoint 写入检查点,并可在崩溃或重启后从已记录的调用日志恢复;回放会返回已记录结果而不再次调用模型。它提供 CLI,也提供通过 HTTP 驱动运行时的 TypeScript 和 Python SDK,并可作为 HTTP 服务或事件驱动智能体的基础。适合需要可复现调试、人工暂停、长任务恢复或把检查点作为集成测试夹具的团队,而非只需要一次性模型调用的场景。

开发者在 .ts 文件中从 "chidori:agent" 导入 chidori 和 run,并用 run(async (input) => ...) 注册处理函数。处理函数可调用 chidori.prompt、chidori.fetch、chidori.input、chidori.workspace.read、chidori.memory、chidori.alarm 等运行时 host function;每个外部副作用由运行时记录为 host call。使用 chidori run 执行文件时,工具调用、网络访问和工作区写入默认需要终端批准;--trusted 可允许这些强效操作。运行记录保存于 .chidori/runs/,可用 chidori resume <agent.ts> <run_id> 回放到暂停点并继续运行,也可用 CHIDORI_RUN_STORE 配置 S3 兼容存储、SQLite 或 Cloudflare Durable Object 镜像。运行还能导出 OTLP span;README 展示了将其发送给 Tael 或其他 OTLP 后端的方式。

  1. 负责维护 LLM 工作流的 TypeScript 团队,需要在第三步才出现的问题上重放原始提示、工具结果和 HTTP 结果,而不重复支付模型费用。
  2. 构建需要人工审批的业务智能体的开发者,可通过 chidori.input() 或命名 signals 将执行暂停到磁盘,之后在新进程中恢复。
  3. 运行长时间工具链的工程团队,需要在进程崩溃后从最近的 host safepoint 继续,而不是从任务开头重跑。
  4. 为智能体建立回归测试的团队,可提交已记录的 checkpoint,并以零模型调用、字节一致的回放验证行为是否漂移。
  5. 需要并发协作智能体的系统,可使用 actors 的可寻址进程、持久邮箱、消息传递和监督重启策略。
  6. 希望在自托管或自定义模型端点上运行 TypeScript 智能体的团队,可配置 OpenAI 兼容端点或使用 Anthropic、OpenAI 凭据。

这个 Agent 有哪些优点和局限?

优点
  • 所有 LLM、工具和 HTTP 副作用经过记录的 host call 边界,可实现不重新调用模型的字节一致回放。
  • 每个 host safepoint 可写检查点,支持跨进程、跨崩溃恢复以及长期人工输入暂停。
  • 智能体是普通 async/await TypeScript,而不是图、链或专用 DSL,保留原生控制流、导入和类型工具。
  • 运行时是一个内嵌纯 Rust JavaScript 引擎的 Rust 二进制程序;运行智能体不需要 Node、Deno、V8 或原生 SDK 绑定。
  • 支持 Anthropic、OpenAI 和 OpenAI chat-completions 兼容端点,并提供 TypeScript 与 Python HTTP SDK。
局限
  • 运行的确定性依赖将副作用置于 chidori.* host call 边界;不受运行时控制的外部行为不在 README 所述的记录模型内。
  • 默认安全策略会暂停工具调用、网络访问和工作区写入;自动化或 CI 中需明确采用 --trusted,否则受限操作会失败关闭。
  • 其 JavaScript 引擎不是 Node;npm 兼容范围限于纯 ESM、无原生依赖且仅使用已 shim 的内置模块,chidori add 会对不兼容包发出警告。
  • 预构建安装说明仅覆盖 macOS 和 Linux 的指定架构;其他平台的二进制可用性未在所给资料中说明。
  • 持久存储镜像、严格持久化和可观测性需要额外配置 CHIDORI_RUN_STORE、CHIDORI_DURABILITY 或 OTLP 环境变量。

如何安装或部署这个 Agent?

最快安装方式:curl -fsSL https://raw.githubusercontent.com/ThousandBirdsInc/chidori/main/scripts/install.sh | sh,然后运行 chidori --version。脚本下载 macOS(Apple Silicon 或 Intel)或 Linux(x86_64 或 arm64)的预构建二进制文件,并安装到 ~/.chidori/bin。也可在稳定 Rust 1.95 或更高版本环境中执行 cargo install chidori,或克隆仓库后执行 cargo build --release。要试用模型,可执行 chidori model-login 并通过 OpenRouter 登录;也可设置 ANTHROPIC_API_KEY 或 OPENAI_API_KEY。

如何使用这个 Agent?

创建 docs 模板项目并启动对话:chidori init my-agent --template docs,cd my-agent,然后执行 chidori chat agent.ts。运行自定义文件:chidori run summarizer.ts --input document="Rust is a systems programming language..."。若使用 OpenAI 兼容服务,设置 CHIDORI_OPENAI_COMPAT_URL 和 CHIDORI_OPENAI_COMPAT_KEY,再执行 chidori run summarizer.ts --model deepseek-chat --input document="..."。对需要工具、网络或工作区写入的自有智能体,可在非交互脚本或 CI 中增加 --trusted;使用 chidori resume summarizer.ts <run_id> 恢复指定记录的运行。

这个 Agent 与同类方案有什么区别?

与图式或 DSL 智能体框架相比,Chidori 将智能体写成普通异步 TypeScript,并把耐久性设为默认行为。与传统耐久执行引擎相比,它内置 prompt、工具、上下文和缓存等 LLM 原语,并将已记录的模型调用用于零成本回放;README 将后者描述为不同于重放代码后再次调用模型的方式。

常见问题

回放会再次产生模型费用吗?
不会。README 将回放描述为依据调用日志返回已记录的提示、工具和 HTTP 结果,且不发起 LLM 调用。
运行不受信任的智能体时有哪些默认保护?
chidori run 默认会要求批准工具调用、chidori.fetch 网络访问和工作区写入;LLM 提示和纯计算不会请求批准。
崩溃后能否恢复?
可以。运行会在 host safepoint 检查点化;可在新进程中通过 chidori resume 重放到暂停位置后继续执行。
是否被单一模型供应商锁定?
不是。资料明确列出 ANTHROPIC_API_KEY、OPENAI_API_KEY,以及可通过 CHIDORI_OPENAI_COMPAT_URL 和 CHIDORI_OPENAI_COMPAT_KEY 配置的 OpenAI 兼容服务。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents