一个教学型实现,把 Agent 的任务循环、上下文管理、工具调用和人工确认拆开阅读。 非 Anthropic 官方项目,不是 Claude Code 源码,也不宣称行为完全一致。
| 文件 | 学习重点 |
|---|---|
| agent.py | 用户输入 → 模型响应 → 工具调用 → 工具结果 → 下一轮;结束条件与子 Agent 示例 |
| context.py | 上下文容量、历史整理与压缩策略 |
| tools.py | 工具定义、注册和执行入口 |
| permissions.py | 风险分级、人工确认与前后置 hooks |
| prompts.py | 提示词组装 |
建议先看 agent.py 的 Agent.run,再追踪一次工具调用如何经过权限判断和结果回填。
对 AI 产品设计而言,不只要知道 Agent 「能用工具」,还要能解释:
- 哪些操作可以自动进行,哪些需要用户确认?
- 对话很长、工具失败、循环达到上限时,用户会经历什么?
- 子 Agent 得到什么上下文和权限,是否需要额外的隔离?
代码导入 Anthropic Python SDK,并通过其客户端调用模型;运行会产生模型用量。 仓库内的默认模型名称、SDK 兼容性和具体账户可用性需要在运行前核对。 不要把 API key 提交到仓库。
本项目的权限门控主要是应用层规则与命令字符串判断,不是操作系统安全沙箱, 不能保障对任意 shell 命令的安全分类。不要用它执行不可信任务或操作重要文件。
- 这是机制学习项目,不是生产就绪的编程助手。
- 本次补充文档没有调用模型,也没有完成端到端运行验证。
- 源文件中的教学说明和预期行为,需要通过代码与测试核查,不能当作完整可靠性保证。
- 后续可以补充无模型工具测试、权限边界反例、依赖锁定及失败体验示例。
产品判断的重点不是多加几个工具,而是让能力、权限、失败和成本的边界可解释。