Appearance
提示词、上下文、知识库和工具调用怎么配合:别只盯着 Prompt
很多人用 AI 写代码时,一旦结果不理想,第一反应是:
- 我是不是 Prompt 不会写
但实际落地里,Prompt 往往只占一部分。
真正影响效果的,通常是四件事:
- 你怎么提要求
- 你给了什么上下文
- 长期知识放在哪里
- 需要外部能力时怎么调用
先说结论
更稳的一套顺序通常是:
text
先明确任务 -> 再补当前上下文 -> 长期资料放知识源 -> 动作交给工具而不是把所有东西都塞进一段超长 Prompt。
一、Prompt 负责“说清楚你要什么”
Prompt 最重要的作用,不是堆术语,而是把任务边界讲清楚。
对编码任务来说,至少要说明:
- 目标是什么
- 不要改什么
- 交付物是什么
- 是否需要跑测试
- 风格或技术约束是什么
一个好 Prompt 往往不是更花哨,而是更具体。
例如:
text
请只修改登录模块,补充失败重试与超时日志,不要改接口返回结构,改完后执行相关测试并总结风险。这类描述通常比“帮我优化一下登录逻辑”有效得多。
二、上下文负责“告诉 AI 当前现场发生了什么”
上下文比 Prompt 更像现场信息。
在编码场景里,它通常包括:
- 当前仓库结构
- 正在看的文件
- 报错日志
- 相关配置
- 变更限制
上下文缺失时,AI 很容易出现这几类问题:
- 改到了不该改的文件
- 写出和现有风格不一致的代码
- 假设了并不存在的依赖或模块
所以很多时候,不是 AI 不会,而是它根本不知道你当前工程的真实样子。
三、知识库负责“存长期稳定资料”
不是所有信息都适合放进对话上下文。
像下面这些内容,更适合进知识库或可检索文档:
- 项目架构说明
- 接口规范
- 团队编码约定
- 发布流程
- 常见故障与处理手册
原因很简单:
- 这些资料长期有效
- 每次重复粘贴成本很高
- 全塞进上下文会让注意力变散
所以更合理的做法通常是:
- 当前任务相关的,直接放上下文
- 长期背景资料,放在知识源里按需检索
四、工具调用负责“把动作真正做出来”
AI 编码不是只要“知道”就够了,还要能“做”。
这时候工具调用才真正重要。
比如:
- 读文件
- 改文件
- 跑测试
- 查 Git diff
- 查数据库结构
- 搜文档
如果没有这些工具能力,很多时候 AI 只能停留在“给建议”。
而接上工具后,它才更像一个能参与工程动作的 Agent。
五、四者怎么分工最稳
可以这样理解:
1. Prompt 定义目标
告诉 AI 要做什么、不要做什么。
2. 上下文补足现场
告诉 AI 当前任务相关的真实信息。
3. 知识库承载长期资料
让团队规则、系统背景和历史经验可持续复用。
4. 工具负责执行动作
让 AI 不只停留在文字分析,而是能进入真实开发流程。
六、最常见的三个坑
1. 把知识库当成“喂更多文字”
知识库的重点不是字多,而是:
- 结构清楚
- 能检索
- 更新成本低
2. 上下文塞太多
上下文不是越长越好。
如果把不相关的大段信息都放进去,反而会降低当前任务的聚焦度。
3. 没有验证环节
AI 即使有上下文和工具,也可能理解偏、改错文件或漏掉边界。
所以最好保留:
- 测试
- diff 审查
- 风险总结
七、给开发者的一套简单实践法
你可以先用这一套最小闭环:
- 用 Prompt 讲清任务边界
- 只补当前任务最需要的上下文
- 把长期规则沉淀到知识库或文档
- 让 Agent 去读文件、改文件、跑命令
- 最后人工审查 diff 和验证结果
一句话总结
AI 编码效果好不好,往往不是 Prompt 单点问题,而是四件事有没有协同好:
- Prompt 讲目标
- 上下文讲现场
- 知识库管长期资料
- 工具负责真正执行
把这四层分工理顺之后,AI 才更像一个稳定的开发助手,而不是一台偶尔灵、偶尔不灵的聊天机器。