AI Agent 课程术语表
这不是按字母排序的词典,而是一张“概念边界图”。第一次遇到术语时先看一句话定义;发生混淆时看同组对照和反例。
本课程统一写作 Harness,不是 “Harmess”。Harness 原意是“挽具/控制系统”:它把模型接到上下文、工具、权限、状态、事件、评估和产品界面上。
先记住核心公式
Agent 系统 = LLM + Context + Tools + Harness- LLM 提供语言理解、生成和概率性决策。
- Context 是这一次模型调用能看到的信息。
- Tools 让系统读取外界或产生动作。
- Harness 决定循环怎样运行、状态怎样保存、哪些动作允许执行、用户怎样观察和控制。
“Agent 能不能稳定工作”往往不取决于一句更聪明的 Prompt,而取决于 Harness 是否把状态、权限、错误、评估和恢复做完整。
最容易混淆的三组概念
1. 用户记忆、运行经验、Skill
| 概念 | 回答的问题 | 从哪里来 | 典型内容 | 生命周期 | 谁批准写入 | 不能替代 |
|---|---|---|---|---|---|---|
| 用户记忆(User Memory) | “这个用户是谁、偏好什么?” | 用户明确表达或经过规则抽取的用户事实 | 语言偏好、常用地址、沟通习惯 | 跨会话;可更正、过期、删除 | 用户授权和记忆写入策略 | 企业政策、通用工作方法 |
| 运行经验(Run Experience) | “这次任务发生了什么、为何成败?” | Agent Event、工具结果、反馈、错误 | 某次检索失败、某参数被拒绝、某策略成功 | 按保留期保存;必须脱敏 | 轨迹采集策略 | 用户事实、已发布 Skill |
| Skill | “遇到这类任务,经过验证的做法是什么?” | 多次经验抽象出的候选方法,或人工编写 | 步骤、检查表、脚本、参考资料、边界条件 | 版本化;发布后不可覆盖 | 评估、安全回归、人工批准 | 运行权限、模型、知识库 |
判别例子
- “用户希望回答使用中文”是用户记忆。
- “第 42 次运行因为快递单号格式错误而失败”是运行经验。
- “先校验单号格式,再调用物流查询;无结果时转人工”经过评估后可以成为 Skill。
反例:一次任务成功,不代表它的 Prompt 可以自动覆盖生产 SKILL.md。一次失败也不代表应该把“这个用户经常输入错误”写成永久用户事实。
2. Tool、MCP、Skill、Harness
| 概念 | 本质 | 是否可执行 | 是否是协议 | 是否包含方法说明 | 主要责任 |
|---|---|---|---|---|---|
| Tool | 一个有 schema 的可调用能力 | 是 | 否 | 通常只有描述和参数 | 做一件具体的事 |
| MCP | Client 与 Server 发现、交换和调用能力的协议 | 协议本身不执行;Server 实现会执行 | 是 | 支持 Prompt,但不等同 Skill | 跨进程/网络互操作 |
| Skill | 可移植的任务方法包 | 可包含脚本,但激活不等于获准执行 | 否 | 是,核心是 SKILL.md | 告诉 Agent 遇到某类任务怎样做 |
| Harness | 承载 Agent 的运行与治理系统 | 编排执行 | 否 | 可加载 Skill | 循环、状态、权限、事件、评估、恢复 |
一条完整链路
用户请求
→ Harness 判断并加载 customer-support Skill
→ 模型根据 Skill 决定使用 search_kb Tool
→ ToolRegistry / MCP Client 检查 CapabilityPolicy
→ MCP Server 执行检索
→ Harness 把 Tool Result 作为 Observation 写入状态反例
- MCP Server 暴露
search_kb,不代表它知道完整客服流程,所以它不是客服 Agent。 - Skill 写了“创建工单”,不代表它自动拥有
ticket:write。 - Tool 的描述来自外部 Server 时仍是不可信输入,Harness 不能因此放宽权限。
3. Context、State、Event、Trace
| 概念 | 是什么 | 示例 | 是否一定发送给模型 |
|---|---|---|---|
| Context(上下文) | 某一次 LLM 调用的可见输入集合 | system prompt、对话片段、工具 schema、检索文档 | 是 |
| State(状态) | 系统在某时刻保存的完整事实 | run status、history、todo、权限、事件游标、产物 ID | 否 |
| Event(事件) | 状态发生的一次有类型变化 | model.started、tool.completed、run.failed | 否 |
| Trace / Trajectory(轨迹) | 按时间排列的事件和关键输入输出 | 一次完整 Agent Run 的脱敏记录 | 否 |
关键关系
Event 驱动 State 变化
State 的一部分被选择、压缩、排序后组成下一次 Context
多个 Event 连成 Trace反例
- SSE 断线只影响事件传输,不应自动把 Run 状态改成失败。
- 对话 history 是 State 的一部分,不是全部 State。
- 把所有 Trace 原样塞回模型,不叫“有记忆”,而叫无限膨胀的 Context。
Agent 运行
LLM(Large Language Model)
根据输入 token 分布生成后续 token 的模型。在 Agent 系统中,它常负责解释任务、选择下一步、生成 Tool Call 或最终回答。它不直接拥有文件、网络或数据库权限。
Agent
在目标和约束下,反复观察状态、选择动作、接收结果,直到完成、失败、暂停或需要人工介入的系统。单次 LLM Completion 不等于 Agent。
Agent Loop
Harness 驱动的循环:
组装 Context → 调用模型 → 解析动作 → 校验权限/参数
→ 执行 Tool → 记录 Observation/Event → 判断是否继续循环必须有终止条件,例如最大步数、时间预算、成本预算、目标完成、不可恢复错误或人工暂停。
Turn
一次用户输入触发的一段处理。一个 Turn 可以包含多次模型调用和多次工具调用;一个长任务也可以跨多个 Turn。
Observation
环境或 Tool 执行后返回给 Agent 的结构化结果。Observation 是数据,不应因为其中出现“忽略之前规则”就变成高优先级指令。
Action
Agent 选择的下一步,例如调用 Tool、委派 Subagent、请求用户确认或提交最终回答。模型建议 Action,Harness 决定它是否可执行。
Goal
可判断是否完成的目标,不只是主题。好的 Goal 包含成功条件、约束、预算和终止条件。
Plan / Todo
对 Goal 的步骤分解。Plan 是预期路径,Todo 是可更新的执行状态。Tool Result 可能让 Plan 重排;“已计划”不等于“已完成”。
Hook
运行生命周期某个节点上的拦截或观察逻辑。例如 before_tool 做权限检查,after_tool 做脱敏,on_error 记录失败。Hook 不能悄悄改变用户目标。
Subagent
被上层 Agent 委派一个边界明确子任务的 Agent。它通常有独立上下文、预算和工具集合,并返回结构化结果。Subagent 不是普通函数,也不应该默认继承所有权限。
Agent Team / Multi-Agent System
多个 Agent 按角色、消息协议、共享状态和终止规则协作的系统。多角色 Prompt 不必然构成多 Agent;真正的多 Agent 需要明确隔离、通信与协调。
Harness 与可观测性
Harness
围绕模型的工程外壳。课程中的 Harness 至少包括:
- ModelClient;
- AgentRunner;
- Context Builder;
- ToolRegistry;
- CapabilityPolicy;
- HookPipeline;
- SkillRegistry;
- State Store 与 Event Store;
- 预算、超时、重试和取消;
- 评估、审计与用户界面。
AgentEvent
课程对运行中变化的统一事件表示。事件应有稳定类型、run ID、顺序/事件 ID、时间和脱敏 payload,以支持 SSE、重放、调试和轨迹评估。
SSE(Server-Sent Events)
浏览器通过一个 HTTP 长连接接收服务端单向事件的标准。SSE 的 id 和 Last-Event-ID 支持断线续传;它不提供浏览器到服务端的双向通道。
幂等(Idempotency)
同一个操作因重试而执行多次时,系统最终效果与执行一次相同。创建 Skill Run 应使用幂等键,避免网络重试重复扣费或重复创建工单。
Backpressure(背压)
生产事件的速度超过消费速度时,系统限制、缓冲或丢弃非关键数据的机制。没有背压时,慢客户端可能让内存持续增长。
Event Replay
从持久化事件按游标重新发送。Replay 是重复传输已经发生的事实,不是重新执行 Agent。
上下文工程
Context Window
模型一次请求能够处理的最大 token 范围。它包含输入和可能的输出预算。窗口更大不代表所有信息都能被同等利用。
Context Builder
从 State 中选择并排序 system instruction、用户输入、历史、Skill、Tool schema、记忆和检索证据的 Harness 组件。
Context Compression
在预算内减少 Context token,同时保留完成任务所需约束和证据。常见方式包括规则裁剪、摘要、检索式选择和 token 级压缩。
Truncation(截断)
直接删除超预算部分。它是最简单的压缩方式,但可能丢掉早期约束。截断必须定义优先级,不能从任意一端盲切。
KV Cache
模型推理时缓存已处理 token 的注意力键值,用于减少重复计算。KV Cache 是推理优化,不是用户记忆,也不是业务数据库。
Prompt
发送给模型的指令和数据组合。System Prompt 具有较高指令优先级,但它不是安全边界;真正的权限仍要由代码执行。
Prompt Injection
不可信输入通过伪装成指令来改变模型行为的攻击。直接注入来自用户输入;间接注入藏在网页、知识文档、代码 Diff、Skill reference 等外部数据中。
Prompt Injection 与普通错误的区别
- 普通错误可能让模型理解错。
- Prompt Injection 试图让模型越过原目标或平台规则。
- 两者都可能导致危险 Action,所以 Tool 执行必须由 schema、CapabilityPolicy 和必要的人审约束。
记忆、知识与检索
Short-Term Memory
当前或相邻 Turn 的对话和工作状态。它通常随 Run 或 Session 结束而缩减,不等于长期用户记忆。
Episodic Memory
按经历或事件保存的记忆,例如某次任务的关键步骤和结果。运行经验可以用 episodic 形式保存,但必须脱敏和设置保留期。
Semantic Memory
从多次经历或知识中抽象出的事实和概念。它不等于向量数据库;“semantic”描述内容类型,向量只是检索实现之一。
Knowledge Base
由企业或领域维护的外部知识集合,有来源、版本和访问规则。客服政策属于 Knowledge Base,不应被用户偏好覆盖。
RAG(Retrieval-Augmented Generation)
先从外部知识检索证据,再让模型基于证据生成。生产 RAG 至少包括索引、召回、排序、上下文组装、引用、拒答和评估。
Embedding
把文本映射成向量的模型输出,用于计算语义相似度。Embedding 相近表示模型认为语义接近,不等于事实正确。
Chunk
索引和检索的文档片段。Chunk 过大浪费上下文,过小会丢上下文关系;需要保留文档 ID、标题、位置和版本以支持引用。
Vector Search
按向量距离返回近邻。它擅长语义近似,但对订单号、专有名词和否定词可能不稳定。
Full-Text Search(FTS)
按词法分析后的 lexeme、查询和排名进行检索。它适合精确词与可解释匹配,但受分词和语言配置影响。
Hybrid Retrieval
合并向量检索与全文检索结果。常见方法 RRF(Reciprocal Rank Fusion)按名次融合,避免直接比较量纲不同的分数。
Recall@5
有相关答案的评估问题中,正确文档出现在前 5 个召回结果的比例。它只衡量召回,不衡量最终回答质量。
Grounding(证据约束)
要求生成内容以提供的证据为依据。Grounding 能减少无依据回答,但不能证明引用片段真的支持每一项结论。
Refusal(拒答)
证据不足、权限不足或风险过高时,系统明确不回答或不执行。拒答是预期的成功路径,不应全部计作错误。
Human Handoff(转人工)
把上下文、证据、未决问题和风险理由交给人工处理。转人工不应包含未脱敏密钥或无关用户数据。
Tool 与 MCP
Tool
有名称、描述、输入 schema、输出约定和执行实现的能力。Tool 参数来自模型时必须重新校验。
Tool Registry
注册、发现并调用 Tool 的 Harness 组件。它管理名称冲突、schema、实现和错误,不负责替代权限策略。
CapabilityPolicy
代码层的能力策略,按 Skill、版本、用户、环境和请求限制 Tool、网络、文件、secret 和副作用。模型不能自行扩大它。
MCP(Model Context Protocol)
基于 JSON-RPC 的开放协议,让 Host 通过 Client 与 Server 交换能力和上下文。它包含数据层和传输层。
MCP Host
承载用户体验和一个或多个 MCP Client 的应用,例如 IDE 或 Agent Harness。Host 决定同意、上下文暴露和用户控制。
MCP Client
Host 内与一个 MCP Server 保持连接的协议组件,负责初始化、能力协商、请求与通知。
MCP Server
暴露 Tools、Resources 和 Prompts 的程序。它可以本地通过 stdio 运行,也可以远程通过 Streamable HTTP 访问。
MCP Tool
由 Server 暴露、模型可选择调用的动作。规范建议保留人类拒绝调用的能力,工具注解和描述默认不能盲目信任。
MCP Resource
以 URI 标识、由应用选择加入上下文的数据,例如 support://articles/returns-001。Resource 不是副作用操作。
MCP Prompt
由 Server 提供、通常由用户选择的预定义消息或工作流模板。它不是系统级不可覆盖策略。
stdio Transport
Client 启动本地 Server,通过标准输入输出交换 JSON-RPC。Server 不能把普通日志写入 stdout,否则会污染协议帧。
Streamable HTTP
远程 MCP 推荐的 HTTP 传输。它与 Web UI 的 Agent SSE 事件流是不同协议和用途。
Scope
访问令牌获准的最小能力集合,例如 kb:read、ticket:write。Server 必须在执行端检查 scope。
Agent Skills 与发布
Agent Skill
遵循 Agent Skills 规范的目录,至少包含带 YAML frontmatter 的 SKILL.md,可选 scripts/、references/、assets/。
Skill Activation
Harness 根据 Skill metadata 和当前任务决定加载完整 SKILL.md 的过程。激活只把方法加入 Context,不自动执行脚本或授予权限。
Progressive Disclosure(渐进披露)
先加载少量 metadata,命中任务后加载 SKILL.md,需要时再加载 reference 或 asset。目标是减少无关 Context。
skill.web.json
Mini Emperor 的可选 Web 扩展,声明在线输入输出、runtime、tool profile、网络、secret 和可见性。它不是 Agent Skills 官方规范的一部分。
Skill Package
某个不可变版本的标准目录归档。发布包应有版本、SHA-256 和安装验证,并防路径穿越及符号链接逃逸。
SemVer
语义化版本 MAJOR.MINOR.PATCH。课程中已发布包不可覆盖;任何修复都生成新版本。
Candidate
通过格式扫描并等待评估或批准的 Skill 版本。Candidate 不是可公开运行版本。
Published
通过评估和人工批准、可以按可见性下载或运行的不可变版本。
Deprecated
仍可识别或固定安装,但不再推荐作为默认版本。它不同于立即禁止使用。
Quarantined
因安全或完整性风险被隔离的版本,不能在线运行或作为默认下载。
Rollback
把默认解析指针恢复到旧的已发布版本。Rollback 不覆盖或删除新版本,固定版本用户也不应被静默替换。
Skill Self-Evolution
从脱敏轨迹提出候选改进,经训练集、保留集、安全回归和人工批准后发布新版本。它是治理流程,不是 Skill 自己修改生产文件。
评估
Deterministic Check(确定性检查)
同一输入和环境下有明确通过/失败条件的检查,例如 schema、lint、类型检查、单元测试、secret scan、SHA-256。
Evaluation Set
用于测量系统表现的一组任务、输入、期望和评分方法。应包含正常、边界、拒答、安全和失败恢复样例。
Training / Development Set
允许开发者在改进过程中查看并调参的数据。它上的提升可能来自过拟合。
Holdout Set(保留集)
改进阶段不用于生成候选或调参,只在比较时使用的数据。Skill 晋级应以保留集结果为重要依据。
Success Rate
满足任务成功条件的样例比例。成功条件必须由环境或 rubric 预先定义,不能在看到结果后修改。
LLM-as-a-Judge
让 LLM 按 rubric 评价模型输出。它适合开放式质量,但会受顺序、长度和自我偏好影响,不能替代确定性安全测试。
Pairwise Evaluation
Judge 在两个候选中选择更好者。应交换候选顺序以测量 position bias。
Trajectory Evaluation
评价整个 Agent Trace,而不只看最终答案。它可以发现越权 Tool Call、无效循环、错误证据和已经发生但未写入答案的副作用。
Verifier
独立核实候选结论的组件或 Agent。MR Verifier 要确认文件、行号和证据存在;Verifier 的输出仍需 schema 与确定性检查。
Cost
完成任务消耗的模型 token、模型费用、工具调用和基础设施资源。降低成本不能以安全或质量回退为代价。
Latency
从请求到首事件、首 token 或最终完成的时间。课程应分别记录 time-to-first-event 和 end-to-end latency。
Coding Agent 与 GitLab
Coding Agent
能读取仓库、规划、编辑文件、运行检查并根据结果迭代的 Agent。只生成代码片段的聊天模型不构成完整 Coding Agent。
Merge Request(MR)
把 source branch 的变更提议合并到 target branch 的审查对象。审核应在合并前运行,并在 source 更新后重跑。
MR Pipeline
由 merge_request_event 触发、能读取 MR 上下文的 GitLab CI Pipeline。它不同于普通 branch push Pipeline。
Review Finding
带严重度、文件、行号、证据、影响和建议的结构化问题。没有可核实证据的猜测不应直接阻断合并。
Fingerprint
对问题身份的稳定摘要,用于新 commit 后更新、关闭或复现同一 finding,避免重复评论。
P0 / P1 / P2 / P3
课程采用的审核严重度:
- P0:立即性重大风险,例如确定的密钥泄露或可被利用的远程代码执行;
- P1:高概率造成严重错误、安全或数据损失;
- P2:应修复但不自动阻断的中等问题;
- P3:低风险改进或提示。
P0/P1 与确定性检查失败可阻断;P2/P3 只提示并由人工判断。
Web 发布与供应链
Skill Hub
展示、运行、下载和管理 Skill 版本的 Web 产品。课程 v1 是单发布者 Hub,不是开放第三方市场。
Online Run
平台加载经过审核的 Skill,在 CapabilityPolicy 中执行。它不直接运行用户上传的任意脚本。
Clean Environment Verification
在没有开发机缓存和配置的临时环境安装、校验并触发 Skill。它能发现隐式依赖和安装路径错误。
SHA-256 Checksum
归档内容的哈希摘要,用于发现下载损坏或内容被替换。校验和不能证明发布者可信,必须与受信任的元数据来源结合。
Path Traversal
归档条目使用 ../、绝对路径等逃出目标目录的攻击。安装器必须在解压前解析并验证每个目标路径。
Symlink Escape
归档中的符号链接把后续写入引向安装目录之外的攻击。课程安装器应拒绝符号链接或在严格沙箱中处理。
Secret
模型或 Tool 所需的敏感凭证。真实值只能保存在服务端环境或 secret manager 中,不能进入前端、日志、Trace、Skill 包或 Git。
Human-in-the-Loop
在高风险或不可逆动作前由人做明确决定。人工批准不是让人阅读所有 token,而是给出风险、差异、证据和可撤销范围。