Manus 的上下文工程经验:缓存、TODO List、纠错等技巧
5. 通过复述操控注意力
如果你用过 Manus 或者 Claude Code,就会注意到它们在执行复杂任务的时候,每一步都会写入一个 ToDo List,完成了哪些任务,接下来要做什么事情。
这主要是因为当上下文窗口内容很长以后,由于信息太多,LLM 不容易聚焦在主要任务上,而 LLM 会对开头和结尾的信息最为注意,所以重要的信息放在结尾是一个好的让 LLM 聚焦的方式,Manus 通过不断重写 TODO List,可以聚焦于即将要做的任务上。
6. 保留错误的内容
LLM 会产生幻觉,就算10次里面9次都是对的,只有1次是错的,这些错误累加起来也是很多的,所以它需要有纠错机制,最简单的方式就是让它重试,但是如果提示词内容不变,再重试可能还是得到同样错误的结果,所以这时候,最好就是重试的时候把错误消息描述清楚提供给 LLM,让 LLM 知道这样的返回结果是有问题的,是什么问题,那么它再次生成就会避开这些问题,提升生成的概率。
7. 警惕“少样本学习”陷阱
少样本是很有用的提示词技巧,也就是你在提示词中可以加入一些提示词示例,让它可以找葫芦画瓢。如果你的示例都是类似的,那么就会限定 LLM 都会按照你示例的方式去生成结果。这在执行一些特定任务时是挺好的,但是对于要求多样化的 Agent 任务这并非好事,会让你的结果同质化。
这里需要特别注意的是,少样本并非特指你在系统提示词中写的示例,你的历史消息的内容也同样会被 LLM 当作少样本学习,也就是你历史消息的处理结果是类似的,后面 LLM 就很难跳出前面的模式。
举例来说,你让 LLM 帮你筛选简历,前面 10 份简历都是不通过,而作为 Agent 你由保留了这些消息历史,那么后面的简历就算质量不错,被判不通过的概率也会更高,所以最好是人为加入一些改变,比如说在输出中加入一些噪音、使用一些不同的模版,或者避免相同任务相互影响。
最后
总结一下:
- 做 AI 应用开发,Prompt Caching 是必须要考虑的重要因素,切记!
- 上下文中最宝贵的位置是开头和结尾,重要的信息要放在最开头或者最后,长时间的任务要在每个小任务结束后复述 TODO List。
- 一些很长的内容可以放到外部文件中,需要时再读取
- 通过预填充回复内容可以引导 LLM 完成任务,调用或屏蔽特定工具
- 准确的错误信息可以 LLM 纠正错误
- 要避免 AI 受到同质化的历史消息影响后续结果
如果你用过 Manus 或者 Claude Code,就会注意到它们在执行复杂任务的时候,每一步都会写入一个 ToDo List,完成了哪些任务,接下来要做什么事情。
这主要是因为当上下文窗口内容很长以后,由于信息太多,LLM 不容易聚焦在主要任务上,而 LLM 会对开头和结尾的信息最为注意,所以重要的信息放在结尾是一个好的让 LLM 聚焦的方式,Manus 通过不断重写 TODO List,可以聚焦于即将要做的任务上。
6. 保留错误的内容
LLM 会产生幻觉,就算10次里面9次都是对的,只有1次是错的,这些错误累加起来也是很多的,所以它需要有纠错机制,最简单的方式就是让它重试,但是如果提示词内容不变,再重试可能还是得到同样错误的结果,所以这时候,最好就是重试的时候把错误消息描述清楚提供给 LLM,让 LLM 知道这样的返回结果是有问题的,是什么问题,那么它再次生成就会避开这些问题,提升生成的概率。
7. 警惕“少样本学习”陷阱
少样本是很有用的提示词技巧,也就是你在提示词中可以加入一些提示词示例,让它可以找葫芦画瓢。如果你的示例都是类似的,那么就会限定 LLM 都会按照你示例的方式去生成结果。这在执行一些特定任务时是挺好的,但是对于要求多样化的 Agent 任务这并非好事,会让你的结果同质化。
这里需要特别注意的是,少样本并非特指你在系统提示词中写的示例,你的历史消息的内容也同样会被 LLM 当作少样本学习,也就是你历史消息的处理结果是类似的,后面 LLM 就很难跳出前面的模式。
举例来说,你让 LLM 帮你筛选简历,前面 10 份简历都是不通过,而作为 Agent 你由保留了这些消息历史,那么后面的简历就算质量不错,被判不通过的概率也会更高,所以最好是人为加入一些改变,比如说在输出中加入一些噪音、使用一些不同的模版,或者避免相同任务相互影响。
最后
总结一下:
- 做 AI 应用开发,Prompt Caching 是必须要考虑的重要因素,切记!
- 上下文中最宝贵的位置是开头和结尾,重要的信息要放在最开头或者最后,长时间的任务要在每个小任务结束后复述 TODO List。
- 一些很长的内容可以放到外部文件中,需要时再读取
- 通过预填充回复内容可以引导 LLM 完成任务,调用或屏蔽特定工具
- 准确的错误信息可以 LLM 纠正错误
- 要避免 AI 受到同质化的历史消息影响后续结果