99 lines
3.1 KiB
Markdown
99 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 | 执行高风险外部操作 | 权限分层、确认、回滚方案 |
|
|
|