Skip to content

English mirror

This English page is generated from the current Chinese documentation so every route, anchor, code sample, and language switch stays available on agently.tech. Human-edited English copy can replace this generated body page by page.

Read the Chinese source page

Context Engineering

模型只看得见上下文窗口里的内容。Context Engineering 解决的是“什么应该出现在窗口里、以什么身份出现、什么时候不该放进去”。

很多应用出问题,不是因为上下文少,而是所有东西都塞进 input:固定规则、用户问题、检索片段、历史对话、工具说明混成一团。Agently 的槽位、Session、Knowledge Base 和 Workspace 是为了把这些来源拆开。

常见上下文来源

来源放在哪里生命周期
模型角色和硬规则role / systemagent 持久
固定枚举、产品资料、格式约定info(always=True)agent 持久
一类任务的处理步骤instruct(always=True)agent 持久
本次用户输入或业务 payloadinput单次
本轮检索片段info(always=False)单次
多轮对话历史Session chat history跨请求
自定义摘要记忆Session memo跨请求
大规模知识资料Knowledge Base + 检索按需
多轮任务证据和 artifactWorkspace records持久
Action / MCP 调用结果tool/action 结果本次 request

先按职责选位置,再写 prompt。不要先拼一个大字符串。

固定内容放 info

python
agent.info({
    "severities": ["P0", "P1", "P2", "P3"],
    "reply_policy": "客户回复不超过 120 字,不承诺未确认修复时间。",
}, always=True)

dict 比手写一段 JSON 字符串更适合 review,也更容易被框架稳定渲染。

本次内容放 input

python
result = (
    agent
    .input({
        "ticket_id": "T-104",
        "message": "Enterprise billing export failed twice.",
    })
    .output({...})
    .get_result()
)

每次都变的业务 payload 放 input。不要把它写进 agent 级 info,否则后续请求会继续携带旧数据。

检索片段只放本次

python
result = (
    agent
    .info({"retrieved_snippets": chunks}, always=False)
    .input(question)
    .output({...})
    .get_result()
)

不传 always=True,这份 info 只属于当前 execution。RAG 场景通常应该这样做:Knowledge Base 负责检索,检索到的片段进入本次 prompt。

Session、KB、Workspace 怎么分

场景最合适的位置
用户刚刚在这次对话里说过订单号Session chat history
用户长期偏好应用层用户画像,或自定义 Session memo
100k tokens 公司文档Knowledge Base,不直接塞 prompt
当前轮检索到的 3 个相关片段单次 info
测试输出、patch、运行日志、decision recordWorkspace
模型可调用的工具列表Actions 自动注入,不手抄进 info

Session 管当前对话,KB 管可检索知识,Workspace 管多轮任务证据。

渐进式披露是一条通用原则

Agently 里很多能力都在解决同一个问题:上下文窗口有限,不能把所有规则、工具、资料、日志和产物都常驻给模型。

对象常驻什么用到时再取什么
Skillsname、description、decision card完整 SKILL.md、references、scripts、assets
Workspacerecord ref、summary、scope、checkpointartifact 全文、日志、报告、历史 decision
Knowledge Basecollection、query、检索配置本轮相关片段
Actions / MCP本轮可见 action schemaaction 执行结果、外部资源内容

这个原则能同时降低 token 成本和误用风险:模型只看见当前任务需要的能力和证据,调用、读取、写回都能留下记录。

压缩优于截断

上下文窗口快满时,直接截断往往会丢掉关键事实。

可选策略:

  • Session 默认只做长度裁剪;需要摘要时注册自定义 resize handler。
  • 大文档先检索,再把相关片段放进单次 info
  • 命令输出和 artifacts 存 Workspace,prompt 里只放摘要和 record refs。
  • 长输入先分段处理,再把中间结构化结果交给下一步。

不要手抄工具目录

用了 Actions 或 MCP 后,框架会在模型规划工具调用时注入工具目录。手工把工具描述写进 info 容易和真实 action surface 不一致。

继续读:Actions 概览

常见误用

  • 所有背景都塞进 input
  • 检索片段用 always=True,导致下一轮继续污染上下文。
  • 把知识库全文塞进 prompt。
  • 把 Workspace 里的长日志直接塞进 prompt,而不是摘要和引用。
  • 把 Skill 正文、资源和脚本说明全量塞进每次请求。
  • 手抄工具目录,和实际 Actions 注册不一致。

下一步