Damn Agent

工具调用与记忆

工具和记忆决定了智能体能否可靠接触外部世界并保留状态。

工具调用和记忆是 Agent 从“会回答”走向“会做事”的关键。

工具调用

工具不是函数列表那么简单。每个工具都应该定义:

  • 输入 schema。
  • 输出 schema。
  • 权限范围。
  • 超时和重试策略。
  • 失败语义。
  • 是否需要人工确认。
type ToolDefinition<Input, Output> = {
  name: string;
  description: string;
  inputSchema: Input;
  run(input: Input): Promise<Output>;
  risk: "low" | "medium" | "high";
};

高风险工具,例如删除文件、部署服务、转账、发邮件,应该在执行前进入确认流程。

记忆类型

类型生命周期例子
上下文窗口单次推理当前任务说明、工具结果
会话状态一次任务已完成步骤、失败原因
长期记忆跨会话用户偏好、项目约定
审计轨迹长期保存工具输入输出、审批记录

设计原则

记忆不是越多越好。好的记忆系统应该能回答:

  1. 为什么要记。
  2. 谁能读取。
  3. 多久过期。
  4. 如何纠错。
  5. 如何避免污染下一次任务。

与上下文工程的关系

记忆是原材料,上下文工程是装配方式。不要把所有记忆都塞进 prompt,而是按任务目标、风险等级和 token 预算选择性注入。

On this page