Files
agent/docs/01-agent-principles.md
T
2026-07-08 11:18:34 +08:00

98 lines
3.1 KiB
Markdown

# Agent Principles
## Working Definition
Agent 是一种能够围绕目标持续感知上下文、选择行动、调用工具、观察结果并调整下一步的系统。
它和普通 LLM 调用的差别不在于“会不会输出文本”,而在于是否形成了闭环:
```text
goal -> context -> plan -> action -> observation -> update -> next action
```
## Minimal Agent Loop
1. Understand the goal: 明确任务、约束和成功标准。
2. Build context: 收集当前状态、历史信息、可用工具和环境限制。
3. Decide next action: 选择回答、提问、调用工具、修改文件或停止。
4. Execute: 执行动作,并保留可观察结果。
5. Reflect: 对结果进行校验,决定继续、修正还是结束。
## Key Capabilities
### Planning
把目标拆成可执行步骤,并能在新信息出现后调整计划。
常见风险:
- 计划太细,导致执行僵硬。
- 计划太粗,导致遗漏验证。
- 计划没有退出条件,导致无效循环。
### Tool Use
工具让 Agent 能改变外部世界,例如读文件、发请求、操作浏览器、调用业务 API。
工具设计重点:
- 输入输出必须清晰。
- 错误要可恢复。
- 权限边界要显式。
- 高风险动作要有确认或审计。
### Memory
记忆不是越多越好,而是让 Agent 在正确时刻拿到正确上下文。
常见类型:
- Working memory: 当前任务上下文。
- Episodic memory: 历史任务和经验。
- Semantic memory: 稳定知识、术语、规则。
- Procedural memory: 操作流程和技能。
### Reflection and Verification
反思不是让模型空想,而是把输出和证据对齐。
有效验证包括:
- 运行测试或脚本。
- 检查 diff 和日志。
- 对比需求和结果。
- 使用独立评估器或基准集。
## Design Principles
### 1. Start From the Environment
Agent 的能力受环境限制。先搞清楚它能观察什么、能改什么、不能碰什么。
### 2. Make State Explicit
把任务状态、工具结果、决策理由和待办项显式化,减少隐式上下文丢失。
### 3. Prefer Narrow Reliable Tools
一个职责清楚、输出稳定的小工具,通常胜过一个权限很大但语义模糊的工具。
### 4. Separate Exploration From Commitment
读、查、模拟、评估属于探索;写文件、发消息、提交代码、执行交易属于承诺。两者的权限和日志要求不同。
### 5. Build Evaluation Early
Agent 系统失败经常不是因为没有能力,而是因为没有清晰的成功标准。先定义可观察指标,再谈优化。
## Common Failure Modes
| Failure | Symptom | Prevention |
| --- | --- | --- |
| Goal drift | 做着做着偏离用户目标 | 持续对照成功标准 |
| Tool hallucination | 调用不存在或参数错误的工具 | 使用结构化工具描述和校验 |
| Context loss | 忘记关键约束或历史决定 | 维护任务状态和摘要 |
| Over-planning | 长时间规划但不执行 | 设定下一步可验证动作 |
| Under-verification | 输出看起来对但没有证据 | 增加测试、日志和审阅 |
| Unsafe action | 执行高风险外部操作 | 权限分层、确认、回滚方案 |