Prompt Engineering
设计单次或模板化指令:角色、目标、格式、示例、约束、成功标准。最轻、最快,但不能解决工具、权限、记忆和验证问题。
一句话版:Prompt 管“怎么说”,Context 管“给模型看什么”,Harness 管“模型能怎么做且如何被约束”,Loop 管“系统如何反复发现、执行、验证、记录并继续下一步”。
设计单次或模板化指令:角色、目标、格式、示例、约束、成功标准。最轻、最快,但不能解决工具、权限、记忆和验证问题。
设计推理时进入上下文窗口的信息状态:规则文件、相关代码、文档、检索、工具描述、历史、错误输出和压缩策略。
设计模型外部的执行系统:工具调用、沙箱、权限、hooks、工作树、日志、测试、可观测性、终止条件和人类审批。
设计长期运行的闭环:发现任务、分配 agent、执行、验证、修复、记录、复盘、再次触发。核心是让系统替你提示 agent。
这四个概念不是互斥流派,而是从“单次模型调用”逐步扩展到“长期可治理工作系统”的四层工程。越往上,能解决的问题越复杂,但成本、治理难度和失败面也越大。
| 你在调什么? | 对应工程 |
|---|---|
| 一句话、角色、格式、样例、输出标准 | Prompt |
| 规则文件、代码片段、历史、检索资料、工具说明 | Context |
| 工具、权限、沙箱、hooks、测试、日志、终止条件 | Harness |
| 定时、队列、分工、验收、重试、handoff、复盘 | Loop |
定义:写出有效指令,让模型更稳定地产生符合要求的内容。OpenAI 官方定义强调“writing effective instructions”,Anthropic 文档要求先有成功标准和测试方式,再优化 prompt。
典型资产:系统提示词、任务模板、few-shot 示例、输出 JSON schema、审查 rubric、Claude slash command、Codex skill 中的步骤说明。
主要收益:成本低、反馈快、适合知识工作与单次任务。
主要局限:无法保证工具执行、无法自动拿到正确上下文、无法阻止高风险操作、无法长期记忆。
定义:Anthropic 将 context 定义为采样时进入 LLM 的 token 集合;Context Engineering 是在模型推理时维护最有用的信息集合,包括系统指令、工具、MCP、外部数据和消息历史。
典型资产:AGENTS.md、CLAUDE.md、项目地图、检索索引、MCP、相关源文件、错误日志摘要、自动 memory、压缩摘要。
主要收益:减少幻觉、减少重复解释、让 agent 跟随项目事实。
主要局限:容易 context flooding、上下文过期、资料投毒、检索召回错误。
定义:广义上是模型之外让 agent 能运行的所有东西。更窄的工程含义是:设计执行层、约束层、反馈层和可观测性,让模型的行动可控、可测、可恢复。
主要收益:把“模型建议”变成“可治理执行系统”。
主要局限:工程投入高,过度约束会降低 agent 能力,维护成本上升。
定义:设计让 agent 反复行动、观察、修正、记录并继续的闭环。Addy Osmani 将其描述为“用系统替代你本人去提示 agent”,但也提醒这是早期概念,需要警惕 token 成本。
主要收益:让重复工作、长任务、多 agent 工作流可持续推进。
主要局限:最容易失控:无限循环、重复失败、错误累积、成本膨胀、无人审查时误操作。
四层可以理解为逐级包裹,也可以理解为四个控制面。Prompt 是语言控制面,Context 是信息控制面,Harness 是执行控制面,Loop 是时间与组织控制面。
[用户目标] | v [Prompt: 把目标说清楚] | v [Context: 装入必要事实、代码、规则、工具说明] | v [Harness: 控制工具、权限、沙箱、测试、日志] | v [Loop: 发现任务 -> 执行 -> 验证 -> 记录 -> 继续/停止/升级]
| 维度 | Prompt Engineering | Context Engineering | Harness Engineering | Loop Engineering |
|---|---|---|---|---|
| 核心问题 | 怎么说才让模型听懂? | 模型现在应该看到哪些信息? | 模型提出动作后,系统如何执行、约束和验证? | 如何让系统持续推进任务,而不是等人逐轮提示? |
| 时间尺度 | 单轮到少量多轮 | 会话级、项目级 | 运行时、项目生命周期 | 天、周、长期工作流 |
| 设计对象 | 指令文本和输出格式 | 上下文窗口和信息供应链 | agent runtime、工具环境、执行控制 | 任务队列、自动化、子 agent、验收闭环 |
| 最适合 | 改写、总结、结构化输出、一次性分析 | 代码库理解、RAG、长期项目、跨会话一致性 | 自动改代码、跑命令、访问外部系统、生产前流程 | 周报、巡检、批量修复、持续交付、多 agent 工厂 |
| 主要指标 | 格式合格率、准确率、一次通过率 | 引用命中率、幻觉率、上下文 token 效率 | 测试通过率、权限违规率、可恢复率、审计完整性 | 吞吐、人工介入次数、循环终止质量、单位成果成本 |
| 失败模式 | 含糊、过度规定、样例误导、模型版本漂移 | 资料过多、资料过期、召回错误、上下文投毒 | 权限过松/过紧、工具 schema 差、日志不足、无法回滚 | 无限重试、成本爆炸、错误累积、无人类升级点 |
| 人类角色 | 写清楚需求 | 维护事实源和上下文边界 | 设计护栏、验证和审批 | 设定目标、优先级、预算和停止条件 |
评分是工程判断,不是官方 benchmark。目的在于帮助选型,而非证明某层绝对更好。
先检查目标、格式、示例、负面约束、验收标准。适合单次写作、总结、分类、代码片段生成。
检查模型看到的资料是否正确、精简、最新、相关。适合项目规则、代码库、客户材料、检索系统。
加权限、沙箱、测试、hook、日志、回滚、人工 gate。适合改代码、跑脚本、连接外部系统。
做自动化和 ledger:周期触发、分工、验收、记录、继续。适合巡检、批量交付、客户工作台运维。
| 场景 | 优先工程层 | 为什么 | 不要过度做什么 |
|---|---|---|---|
| 写一份客户邮件或文章初稿 | Prompt | 任务边界短,输出质量主要来自目标、口吻、结构和样例。 | 不必上 MCP、hooks、长期自动化。 |
| 让 Codex/Claude Code 理解一个大型仓库 | Context | 关键是加载正确规则、项目地图、相关文件和测试命令。 | 不要把全仓库塞进上下文。 |
| 自动修 bug 并跑测试 | Harness | 需要工具、权限、沙箱、测试、diff、回滚和错误反馈。 | 不要只靠“请仔细一点”。 |
| 批量多 agent 生成、审核、修复长内容 | Loop + Harness | 需要分工、版本、评审、字数/质量验收和中断恢复。 | 不要信 agent 自报完成。 |
Claude Code 的优势是 CLAUDE.md/auto memory、slash commands、skills、subagents、hooks、permissions、Agent SDK 和可编程 agent loop。它更适合把 prompt、context、harness 和 loop 拆成可维护的插件化资产。
.claude/commands/*.md slash command。description 可用项目语言。---
description: "审查当前交付物是否可交付"
allowed-tools: Read(*), Bash(git status), Bash(npm test)
---
<role>You are a strict delivery reviewer.</role>
<checks>
- Requirements met
- Tests or validation evidence present
- No secrets or PII
- Handoff instructions clear
</checks>
CLAUDE.md 放每次都要知道的事实:构建命令、项目布局、约定、边界。# CLAUDE.md
## Always know
- Build: pnpm build
- Test: pnpm test
- Never commit .env or secrets
- Public docs require desensitization review
## Pointers
- Architecture: docs/architecture.md
- Release checklist: .claude/skills/release/SKILL.md
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 .claude/hooks/check_bash_risk.py"
}
]
}
]
}
}
claude -p、GitHub Actions、cron/launchd 或插件 monitors 做周期触发。from claude_agent_sdk import query, ClaudeAgentOptions
async for message in query(
prompt="Review open issues and draft a prioritized repair plan.",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Bash(git status)", "Bash(pnpm test)"]
),
):
print(message)
Prompt-first
Context + Harness
AGENTS.md / CLAUDE.md 项目地图。客户/项目目标 -> Prompt 模板:诊断、实施、审查、交接 -> Context 文件:AGENTS.md / CLAUDE.md / project-map.md -> Harness:sandbox + permissions + tests + scripts + logs -> Loop:weekly review automation + ledger + human escalation
注:本报告为工程判断型分析,不是法律、安全或供应商采购建议。涉及价格、产品可用性、权限行为和模型版本时,应在正式交付前重新核验官方文档。