跳转到正文

选择并运行示例 ​

示例按照“基础调用 → 控制流程 → Agent 能力 → 完整执行模式”递进。每个目录提供输入、依赖、运行命令、产物、失败处理和测试方式。第三方工具与数据库适配器集中在 _shared/tools,不混入框架依赖。

1. 下载消费者示例 ​

文档站编译时生成 ditto-examples.zip。解压后先阅读包内 README,执行 npm install;下载包直接从 npm 安装 Ditto,不需要私有源码或路径别名。

sh
unzip ditto-examples.zip -d ditto-examples
cd ditto-examples
npm install
node examples/package-basics/context.ts 'Hello Ditto'
node examples/package-basics/tools.ts 'A😀'

需要模型时复制 examples/package-basics/.env.example 为 .env,填写模型与 Redis 配置。额外数据库、浏览器、OCR、音频与 MCP 依赖按照各例子的 README 安装。下载包不包含密钥、node_modules、数据库文件、测试产物或框架源码。

原始仓库中的 npm run build 构建框架;下载包是消费者项目,没有框架构建步骤。下载包的 example scripts 已移除此步骤。check:*:package 是维护者发布测试,依赖源码构建环境,不适用于下载包。

2. 从最小例子开始 ​

示例外部依赖结果
Context仅主包LOAD → SELECT 的真实输出
Tool仅主包字符统计与 Observation
完整会话 Agent模型、Redis、文件 SQLite多轮记忆、恢复、重放与答案文件
可选检索主包 + 检索包候选与来源
扩展与接入按具体示例自定义 Worker、Skill、Memory 算法、真实 MCP

3. 七类控制流程 ​

顺序与步骤、条件与路由、并行与汇总、循环与调整、失败恢复、人工介入、生命周期。

这层解释如何连接和控制能力。先找控制结构,再挑选对应 Node;不为每一种业务流程新增一套框架 API。统一调用边界列出 38 个例子的公开节点映射。

4. 十二类基础能力 ​

基础能力索引覆盖请求理解、规划、检索、分析、上下文、记忆、系统操作、执行结果理解、内容、多模态、数据代码、验证安全。

按业务目标选入口,再阅读其 _shared/tools 适配器。Context 使用 Redis,Memory 使用持久库;业务系统本身还需要独立状态核验。统一能力与发布说明提供 86 个入口的 API 矩阵。

5. 十六种完整执行模式 ​

模式建议先理解关注的完整链路
4.1 RAGContext、Memory、检索问题到带引用答案
4.2 联网问答Tool、网页读取搜索、阅读、筛选和来源
4.3 深度研究Loop、预算子问题、多轮检索、缺口和报告
4.4 ReActINFER actions、Tool/MCP判断、动作、观察直到停止
4.5 Plan-and-ExecuteGraph 依赖、动态 Loop整体计划、执行与重规划
4.6 Reflection检查与版本生成、发现问题、修改和复检
4.7 候选选择并行、审议生成、评价、选择或融合
4.8 工具链Tool、副作用查询客户、订单、更新与通知
4.9 人机协作持久状态、可信审批阶段结果、人工编辑、继续
4.10 多 Agent 分工角色上下文、并行分工、执行、收集与汇总
4.11 Supervisor检查、预算、再分配主管检查与再次委派
4.12 Handoff原子责任状态责任转移、接收确认和恢复
4.13 专业路由条件、权限领域判断与限定专业执行
4.14 多观点讨论独立上下文、来源共识、分歧与综合
4.15 自动修复实际执行反馈报错、修改、再执行验证
4.16 长任务恢复检查点、业务幂等中断、核对、继续与交付

6. 怎样复用 ​

先复制模式目录和其相对导入的 _shared 应用模块,保持目录结构。替换请求身份、数据来源、业务工具、输出 sink 和配置;保留阶段契约、结果校验与恢复规则。

单独复制 cli.ts 通常不够。完整 archive 保留相对路径,方便先运行后删去不需要的部分。示例里 runRag 等函数是应用入口,不是 npm 框架导出。

7. 验证是否真的完成 ​

每次验收记录实际运行环境、模型、存储和外部系统。检查最终文件/数据库/远端状态;分别验证新任务、重放、错误、取消、服务不可用和跨进程恢复。只通过 TypeScript 或模型能回答,不代表业务任务端到端成功。

Ditto · @codesoul-co/ditto · Node.js 24+