Chidori
把 TypeScript 智能体运行变成可持久化、可回放、可恢复的执行。
按维度查看评分与理由
证据显示:README 明确说明默认拒绝策略、能力注入、资源限制(sandbox-model.md),以及运行前对工具调用、网络访问、工作区写入的确认(--trusted 标志)。数据流透明性:所有副作用作为 host call 记录,可重放。敏感数据处理:提到凭据存储(~/.chidori/credentials.json),但未详细说明加密或保护措施。依赖安全:提到 npm 包 SHA-512 验证,但未提供依赖漏洞扫描证据。外部影响:有沙箱和确认机制。回滚:通过重放和检查点实现。来源归属:未验证发布者,但仓库有明确的 Apache-2.0 许可证。扣分:敏感数据处理和依赖安全证据不足。
证据显示:README 和文档一致描述核心机制(host call、重放、恢复)。依赖可用性:提供预编译二进制和多种安装方式,但未提供依赖可用性保证。失败消息:文档提到错误处理,但未提供具体失败消息示例。扣分:依赖可用性和失败消息证据不足。
证据显示:明确目标受众(AI 编码代理、开发者),提供多种场景(聊天、工具使用、人类参与)。能力边界:文档列出 host 函数和沙箱限制。触发精度:通过 --trusted 和确认机制控制。环境适配:支持多种平台和提供者。扣分:无重大扣分。
证据显示:信息架构清晰(README、docs/、llm.txt)。安装说明详细。命名稳定:API 名称一致。示例和 FAQ 丰富。已知限制:文档提到兼容性警告,但未系统列出。许可证:Apache-2.0。版本控制:有 crates.io、npm、PyPI 版本,但未提供 CHANGELOG。维护责任:有 CI 和贡献指南,但未明确维护者。扣分:已知限制和版本控制证据不足。
证据显示:输出可用性:提供 CLI 和 SDK,输出格式明确。边际价值:强调零成本重放和确定性,有独特价值。成本效益:提供成本节约机制(缓存、重放)。扣分:无重大扣分。
证据显示:声明可追溯:README 和文档详细说明功能。跨来源佐证:有 CI 测试和文档,但未提供独立验证。事实与推断分离:文档区分事实和设计目标。扣分:跨来源佐证不足。
- 发布者身份未验证,需谨慎评估供应链风险。
- 敏感数据处理细节不足,凭据存储方式需进一步审查。
- 依赖安全仅提及 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 后端的方式。
- 负责维护 LLM 工作流的 TypeScript 团队,需要在第三步才出现的问题上重放原始提示、工具结果和 HTTP 结果,而不重复支付模型费用。
- 构建需要人工审批的业务智能体的开发者,可通过 chidori.input() 或命名 signals 将执行暂停到磁盘,之后在新进程中恢复。
- 运行长时间工具链的工程团队,需要在进程崩溃后从最近的 host safepoint 继续,而不是从任务开头重跑。
- 为智能体建立回归测试的团队,可提交已记录的 checkpoint,并以零模型调用、字节一致的回放验证行为是否漂移。
- 需要并发协作智能体的系统,可使用 actors 的可寻址进程、持久邮箱、消息传递和监督重启策略。
- 希望在自托管或自定义模型端点上运行 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 将后者描述为不同于重放代码后再次调用模型的方式。