Skip to content
签到签到

6. 完整学习路线

以下按“前端背景、能投入持续学习”的默认情况设计。若每天投入 1.5 到 2 小时,建议总周期 4 到 6 周;只做快速理解可压缩到 1 到 2 周。

阶段 0:建立项目全景

  • 目标:能解释项目解决什么问题、入口和核心价值。
  • 推荐时间:1 到 2 天。
  • 学习章节:第 1、2、3 章。
  • 阅读:README.mddocs/architecture.mddocs/cordis-primer.mdpackages/core/README.md
  • 实践:运行 git status、列出目录、画一张自己的模块草图。
  • 验收:不看文档,能说出“插件化、session log、turn/step、profile/bundle”。

阶段 1:搭建并运行项目

  • 目标:完成依赖安装和最小运行,记录真实成功或失败。
  • 推荐时间:1 到 2 天。
  • 学习章节:第 9 章。
  • 阅读:docs/development.md#setup-tutorial、根 package.json
  • 实践:pnpm installpnpm run typecheck;如环境允许,再尝试 pnpm run testpnpm dsh --profile headless
  • 验收:能区分环境问题、依赖问题和配置问题。

阶段 2:掌握 Cordis 插件模型

  • 目标:能写一个最小插件,理解 inject/effect/events。
  • 推荐时间:2 到 3 天。
  • 学习章节:第 2 章中的 Cordis 部分、第 3 章。
  • 阅读:docs/cordis-tutorial/01-first-plugin.md07-into-the-harness.md
  • 实践:在 tmp/cordis-tutorial 建插件,注册 service 和 event。
  • 验收:能解释为什么 plugin 卸载后注册会消失。

阶段 3:理解 Session Log 和派生历史

  • 目标:掌握事件、surface、deriveMessages。
  • 推荐时间:2 天。
  • 学习章节:第 2 章 session 部分、第 7 章相关章。
  • 阅读:packages/core/session/src/types.tsindex.tssurface.ts
  • 实践:写一个脚本 Session.createappend 几条事件,观察 deriveMessages()
  • 验收:能判断某个事件是否进入模型历史。

阶段 4:追踪 Agent 主调用链

  • 目标:沿 followup -> turn -> step -> llm -> tools 读源码。
  • 推荐时间:3 到 5 天。
  • 学习章节:第 4、8 章。
  • 阅读:packages/core/agent-loop/src/agent.tsindex.tstool-calls.ts
  • 实践:在 turn()step() 加断点,观察 phase、inbox、session.events。
  • 验收:能用 Archify 图解释时序并标出关键行号。

阶段 5:深入 LLM 和 Tools

  • 目标:理解 provider 替换、流式协议、工具策略。
  • 推荐时间:3 天。
  • 学习章节:第 7 章相关章。
  • 阅读:packages/llm/llm/src/index.tspackages/core/tools/src/index.tsdocs/cookbook/adding-an-llm-adapter.mdadding-a-tool.md
  • 实践:阅读现有 adapter;为已有工具补一个 tools/pre-execute 观察 listener。
  • 验收:能说出 prepareCall() 为什么返回一次性 handle。

阶段 6:学习测试和调试

  • 目标:会跑单测、snapshot,理解测试分层。
  • 推荐时间:2 天。
  • 学习章节:第 9 章。
  • 阅读:docs/testing.mdpackages/core/agent-loop/tests/
  • 实践:跑一个 package 单测;定位一次失败。
  • 验收:能说明 unit/coverage/e2e/snapshot 分别验证什么。

阶段 7:修改一个已有功能

  • 目标:做低风险改动并验证。
  • 推荐时间:2 到 3 天。
  • 学习章节:第 10 章实践二。
  • 实践:修改 cordis.patch.yml 中的 system-prompt.personatoolOrder,或在一个测试 fixture 中观察输出变化。
  • 验收:能说明改动影响、恢复方式和测试命令。

阶段 8:排查一个模拟故障

  • 目标:掌握调用链、日志和断点。
  • 推荐时间:2 到 3 天。
  • 学习章节:第 10 章实践三。
  • 实践:禁用某个工具行、填一个错误模型路由、或写一个 pre-step reject listener,观察 fail-loud。
  • 验收:能定位故障发生在哪个 layer、哪个服务、哪个事件。

阶段 9:完成一个小型扩展

  • 目标:使用正式扩展机制增加一个能力。
  • 推荐时间:3 到 5 天。
  • 学习章节:第 10 章实践四、第 11 章。
  • 实践:新增一个 tool plugin 或 prompt section,补 README 和 tests。
  • 验收:能通过配置加载,能被模型 schema 看到,并有测试覆盖。

阶段 10:自己设计一个最小 Agent Harness

  • 目标:能把核心抽象迁移到自己的项目。
  • 推荐时间:1 周左右。
  • 学习章节:第 11 章末尾的“自己动手设计”。
  • 实践:用 TypeScript 实现最小 ContextToolRegistrySessionLogAgentLoop
  • 验收:最小系统能处理“文本 -> 模型 -> 工具 -> 模型”的一轮循环,并记录可回放日志。