主流 Agent 入门教程 / Qoder
6. 进阶工作流
原文备份 · 第 8 / 12 篇 · 查看极客时间原知识库 ↗
本篇目录 · 5 节
来源:Qoder
前面五章,我们围绕「记账小管家」把 Qoder 的基本功练扎实了:对话、写功能、调试、测试、重构、git 存档。你现在已经能独立完成一个小项目了。
这一章,我想带你把视野打开一点,去认识 Qoder 身上几个更「高级」但也更迷人的能力。它们不一定每个都马上用得到,但知道它们存在、大概什么时候用,会让你在遇到对应场景时,心里「咯噔」一下想起来:哦,这个可以用 Qoder 的那招。
我们还是尽量结合「记账小管家」来讲,让抽象的能力有具体的落脚点。
6.1 让 Qoder 当你的「代码库向导」
我们的记账项目现在文件不多,你闭着眼都知道东西在哪。但想象一下:哪天你接手了一个别人写的、有几百个文件的大项目,光文件树就滚好几屏,完全无从下手。这是职场里太常见的场景了。
Qoder 特别擅长这个——它能替你「翻遍」整个代码库,然后用一句话回答你的问题。 你不用自己去一个个文件点开找。
比如你可以直接问它:
- 「这个项目的入口在哪?程序是从哪个文件开始跑起来的?」
- 「记录账目的数据,是在哪个函数里被写进文件的?」
- 「有没有哪个地方处理了『金额为负』的情况?都怎么处理的?」
它会去搜索、去阅读相关文件,然后把答案连同「在哪一行」一起告诉你。你甚至能顺着它给的线索,直接跳到那段代码去看。
这背后其实是一种叫「探索式搜索」的能力——它不是死板地匹配关键词,而是理解你的意图,哪怕你用的词和代码里的不完全一样,它也能找对地方。所以当你面对一个陌生项目、心里发怵的时候,记住:别自己硬啃,先让 Qoder 给你当向导。
6.2 Skills:把「专业流程」打包成一个命令
先用 /skills 查看可发现的技能;本节只做一个自定义检查闭环,其余命令查附录。
在用户技能目录 ~/.qoder/skills/ledger-check/SKILL.md 创建:
---
name: ledger-check
description: 检查记账课程的接口和固定九月样例
---
读取项目 README 与 tests/test_contract.py。
只运行 python -m unittest discover -s tests -v,不修改实现、测试或数据。
报告命令、退出码、失败测试名;未运行时明确写未运行。
重开会话后在 /skills 中确认 ledger-check 被发现,再显式要求使用它。自己在另一个终端运行同一测试并核对报告;若未发现,先检查目录和 frontmatter,不继续叠加插件。
6.3 MCP:给 Qoder 接上「外部世界」
如果说 skill 是 Qoder 的「内功」,那 MCP 就是它伸向外部世界的「手」。
MCP(全称 Model Context Protocol,模型上下文协议)这个词听着唬人,其实概念很好懂:它是一套标准,让 Qoder 能够连接和操作外部的工具与数据源。 默认情况下 Qoder 主要在你的本地文件里活动;接上 MCP 之后,它就能操作真实浏览器、连数据库、调外部接口等等。这些能力由一个个「MCP 服务器」提供——你可以把它想象成给 Qoder 插不同的「外接设备」。
怎么装一个 MCP 服务器? 最省事的方式是用命令添加。语法是:
以下为参数模板,执行前先将尖括号占位符替换为实际值:
qoder mcp add <名字> -- <启动这个服务的命令>
举个真实的例子,给 Qoder 装上一个「操作浏览器」的能力(Playwright MCP):
先在终端检查 node --version、npm --version、npx --version;CLI 安装不要求 Node,不代表这个 MCP 也无需 Node。按 Node.js 官方安装说明补齐后,保存使用的 Node 和 MCP 包版本。第一次连接若提示缺浏览器,按 Playwright MCP 的安装提示完成浏览器准备,再验证页面实际打开。
qoder mcp add playwright -- npx -y @playwright/mcp@latest
这条命令的意思是:添加一个叫 playwright 的 MCP 服务,启动方式是 npx -y @playwright/mcp@latest(-- 后面就是「怎么把它跑起来」的命令)。装好后配套的几个管理命令:
qoder mcp list:看看现在装了哪些 MCP 服务;qoder mcp remove <名字>:删掉某个;- 如果 Qoder 正开着,敲
/mcp reload让它重新加载;用/mcp可以查看 MCP 的状态。
它把配置写在哪? qoder mcp add 会自动帮你写进配置文件,你一般不用手动改。但知道位置有好处,配置文件按作用范围分三处:
- 用户级(对你所有项目生效):
~/.qoder/settings.json - 本地级(只对当前项目、且不提交给团队):
<项目>/.qoder/settings.local.json - 项目级(可提交、团队共享):
<项目>/.mcp.json
添加时可以用 -s 指定写到哪个范围(user / local / project),用 -t 指定服务类型(stdio / sse / http / ws,默认 stdio 就行)。
如果你想手动写配置,格式长这样(以项目级 .mcp.json 为例):
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"],
"env": {}
}
}
}
回到我们的记账项目,一个生活化的用法:假设你想让「记账小管家」能自动去网上拉汇率。装上一个浏览器类 MCP(比如上面的 playwright)后,你就可以对 Qoder 说:「帮我打开这个网页,把今天的美元兑人民币汇率读出来。」这只表示开发 Agent 能读取网页,不代表最终记账程序已经能联网取汇率。应用自动取数还需实现 HTTP 客户端、数据源、单位、时间戳、超时与离线策略。本课仅验收 Agent 打开指定页面并返回标题,不把它当作账本运行时能力。
如果你觉得手写配置麻烦,还可以用
/mcp-config这个 skill,让 Qoder 引导式地帮你把 MCP 配好。
MCP 属于「进阶中的进阶」,你现在只要知道有这么回事、知道用 qoder mcp add 就能装就够了。等真遇到「想让 Qoder 连某个外部工具」的需求,再回来照这一节操作,很有针对性。
6.4 子代理:让 Qoder 学会「分身术」
有些任务又大又杂,比如「把整个项目里所有中文注释翻译成英文」,或者「在一个几百个文件的陌生代码库里找出所有和支付相关的逻辑」。让 Qoder 一个人从头干到尾,会很慢,而且中间产生的海量信息会把它的「注意力」(上下文)占满。
这时候可以用子代理(subagents)——Qoder「派出分身」去处理相对独立的子任务,分身干完把干净的结论汇报给「本体」,本体再汇总。好处有两个:能并行(几件互不干扰的事同时做,快)、保护主线(脏活累活丢给分身,本体思路不被淹没)。
Qoder 内置了哪几种子代理? 你会经常遇到这三个:
- Explore(探索):只读的「代码库侦察兵」。按关键词、文件模式、或「某功能在哪实现」去快速定位代码。6.1 节说的「代码库向导」,主力就是它。
- Plan(规划):只读的「架构参谋」。帮你设计实现方案、理清要动哪些文件、有哪些依赖和取舍,但不动手改代码。
- general-purpose(通用):全能型分身,适合复杂搜索、跨多文件分析、调用链追踪这类需要多步骤的活。
怎么用? 大多数时候你不用手动指派,Qoder 会自己判断该不该派分身、派哪个。但你也可以主动点名,比如:
用 Explore 子代理帮我找出项目里所有读写 records.json 的地方。
或者在提需求时给个提示:「这个任务比较大,你可以拆成几块并行处理。」
还能自定义子代理。 如果你有一类反复出现的专门任务(比如「按我们团队规范审查 API 设计」),可以造一个专属子代理:在项目的 .qoder/agents/ 目录(或用户级的 ~/.qoder/agents/)下放一个 .md 文件,描述这个代理的职责和规则即可。造好之后用 /agents 可以查看和管理。
对新手,你平时不用操心子代理——知道「遇到大任务它有分身术、并且有 Explore / Plan / general-purpose 这几员大将」就够了。
6.5 记忆与项目约定:让 Qoder 越用越懂你
最后一个能力,我个人觉得特别有意思——它让你和 Qoder 的合作「有默契」,不用每次从头交代。第 3 章我们已经用 /init 生成过 AGENTS.md,这里把整套「记忆」体系讲完整。
Qoder 的记忆分两大类:
① 静态记忆(你或团队亲手写的规矩)——核心是 AGENTS.md。
它就是你给 Qoder 定的「项目说明书」,Qoder 每次进项目都会先读它。关键是它分层级,你可以按需要放的位置:
- 用户级:
~/.qoder/AGENTS.md—— 对你所有项目生效。适合放你个人的通用偏好,比如「回复尽量简洁」「解释概念时多打比方」。 - 项目级:
<项目>/AGENTS.md—— 只对当前项目生效,可以提交给团队共享。适合放项目专属规范,比如我们记账项目的:- 本项目用 Python 3,代码风格遵循 PEP 8;
- 所有金额以「分」为单位用整数存储,避免小数误差;
- 每完成一个功能都要补对应的单元测试;
- 提交信息用中文,遵循 feat/fix/docs/test/refactor 前缀规范。
- 更细的规则文件:
<项目>/.qoder/rules/目录下可以放多个.md规则文件,还能给规则设「触发方式」——比如始终生效、手动触发、由模型自行判断是否相关、或只在匹配某类文件时生效(glob)。需要精细化管理时用得上。规则文件里还能用@路径/文件名的写法引入别的文件内容。
AGENTS.md 一般用 /init 自动生成后再手动补充,不用从零手写。
② 自动记忆(Qoder 自己记的)。
除了你手写的规矩,Qoder 还会把一些「值得复用」的信息自动记在本地(路径大致是 ~/.qoder/projects/<项目>/memory/),下次对话自动用上。你可以主动管理它:
- 让它记:直接说大白话「记一下,这个项目的金额一律用整数分存储」,或者用专门的
/remember命令把某条信息存进记忆。 - 查看/管理:敲
/memory查看当前所有记忆文件、打开自动记忆的目录;敲/memory manage编辑或删除某条记忆。 - 让它忘:直接说「忘掉之前关于 XX 的记忆」。
为什么这件事值得你认真对待? 因为它把我们前面辛辛苦苦养成的好习惯「自动化」了。你把「git 小步提交、提交信息规范、改完必跑测试、金额用整数分」这些都写进项目的 AGENTS.md,会作为模型的行为约定加载,但不保证每次执行。强制检查应由测试脚本、Git hook 或 CI 实现,并检查实际退出码,不再依赖你每回都记得去叮嘱。Qoder 一进项目就照着办,表现得稳定又可靠,而不是每次都像新来的实习生。
给你留个小作业:现在就用
/init生成(或打开已有的)AGENTS.md,把我们这一路强调的几条规矩写进去,然后开个/new新对话,让它做点小事,观察它是不是自动就遵守了这些约定。那种「它记住了并照做」的默契感,你会印象很深。
这一章我们见识了 Qoder 更辽阔的一面,而且都落到了真实命令上:用 Explore 子代理当代码库向导、用 /skills 里的现成技能(/debug /verify /security-scan 等)提效、用 qoder mcp add 通过 MCP 连接外部世界、用 Explore / Plan / general-purpose 三员大将并行作战、靠 /init 生成的 AGENTS.md 加 /remember、/memory 让它越用越懂你。
它们看起来五花八门,但内核其实是一致的:Qoder 想成为你越来越称手的伙伴,而不只是一个问答工具。
下一章,我们要把「记账小管家」收尾成一个真正「拿得出手、能交付」的作品——加上导出报告这样的实用功能、生成一份像样的文档、整理出一份漂亮清晰的提交历史。
翻到第 7 章,我们把这个作品打磨完整。