.claude/ Folder as Production Agent
Pawel Huryn 的核心洞察:你每天都在编辑的 .claude/ 文件夹本身就是可部署的生产级 Agent 运行时。从开发到生产无需翻译层。
缺失的模式:Agent as Callable Component
两个主流叙事:
- Agent 作为产品(Claude Code, Cursor)
- Agent 作为基础设施(LangGraph, Managed Agents, CrewAI)
中间的空白:Agent 作为应用内部的可调用组件。
你的 web app 处理路由、auth、CRUD。当请求需要推理时,调用 agent。Agent 在沙盒中运行,带着自己的 CLAUDE.md、skills 和 MCP servers。
五大原语
| 原语 | 说明 |
|---|---|
| CLAUDE.md | Agent 的身份定义。开发时在终端塑造 Claude Code 行为;生产时作为 system prompt 加载 |
| Skills (.claude/skills/) | 可复用行为,markdown 格式。开发与生产共用同一文件格式和 loader |
| MCPs (.claude/mcp.json) | 扩展 agent 工具表面。开发配置连接 Chrome/文件系统;生产配置连接搜索 API/数据库。不同服务器,相同契约 |
| Hooks | 工具事件触发的函数。PreToolUse 阻止危险操作;PostToolUse 记录 agent 读取的一切 |
| Sub-agents (.claude/agents/ |
每个文件夹是自包含 agent:自己的 CLAUDE.md、skills、MCP 配置。添加第二个 agent = 新建文件夹 |
一切都是文件。一切都能版本控制。一切都在 PR 中 diff。
生产调用方式
for await (const msg of query({
prompt: question,
options: {
cwd: './.claude/agents/knowledge-agent',
settingSources: ['project'],
allowedTools: ['Read', 'Glob', 'Grep'],
maxTurns: 5,
maxBudgetUsd: 0.15,
model: 'claude-sonnet-4-6',
hooks: { /* guardrails */ },
},
})) {
// stream text, collect metadata
}
settingSources: ['project'] 是自动加载器:从 cwd 读取 agent 的 CLAUDE.md、skills 和 MCP 配置。与 Claude Code 打开会话时的行为一致。
与替代方案的对比
| 维度 | Agent SDK | Managed Agents | LangGraph | n8n |
|---|---|---|---|---|
| 学习成本 | 无(肌肉记忆即生产运行时) | 新平台 | 新抽象 | 节点图 |
| 适用场景 | 已有自托管应用内的请求-响应 agent | 需要完整平台能力 | 复杂状态流 | 工作流编排 |
| 可观测性 | Hooks 提供实时 per-response 元数据 + OTEL 导出 | 平台内置 | 图节点级别 | 节点级别 |
关键注意事项
- Root CLAUDE.md 是 dev-only:帮助你在 IDE 中维护应用的 CLAUDE.md 不应进入生产。在 postbuild 中移除它。
- Next.js standalone 非 serverless:SDK 启动完整 Claude Code 运行时,不是轻量 API client。
对 Jean 的启发
你已经在维护的 .claude/ 配置可以直接嵌入到个人产品/服务中。无需学习新框架。