企业并不缺知识,缺的是让 AI Agent 在正确时间找到正确知识的机制。合同、产品规范、会议纪要、工单和操作手册散落在不同目录与系统中;即使模型能力足够强,也不能自动知道哪份文件有效、某项结论来自哪里。
V7 使用 GPT-5.6,将这些分散资料转化为 Agent 可消费的上下文,使其能够完成复杂任务,并把结果链接回原始来源。这里真正重要的不是单纯扩大上下文窗口,而是建立一层可检索、可引用、可更新、受权限控制的“组织记忆”。
组织记忆不是更长的聊天记录
聊天记录只保存一次会话中发生了什么,组织记忆则需要回答四个更难的问题:
- 该取哪份资料:面对数千份文件,不能把所有内容都塞进提示词。
- 资料是否仍然有效:旧版价格表、过期流程和草稿不能与正式制度等量齐观。
- 谁有权看到资料:Agent 不应因为建立了统一索引,就绕过原有访问控制。
- 结论如何复核:输出应指向文件、页码、段落或其他稳定位置,而不是只给出流畅答案。
因此,模型负责理解任务、组合证据和生成结果;记忆层负责摄取、切分、检索、权限过滤与来源追踪。GPT-5.6 可以提高复杂任务中的推理与生成质量,但企业知识仍然需要由外部系统持续提供。模型参数本身不等同于公司记忆。
从散乱文件到可执行上下文
从来源摘要可以确认,V7 的目标是让 Agent 使用企业文件完成复杂且带来源链接的工作。若要在工程上实现这一效果,通常需要一条类似下面的链路:
- 摄取与标准化:读取文档、表格、PDF 或业务系统记录,并保留文件名、版本、更新时间和权限标签。
- 切分与索引:按标题、段落或语义边界切分内容,避免检索结果只剩脱离上下文的句子。
- 任务驱动检索:根据 Agent 当前步骤检索证据,而不是只在会话开始时搜索一次。
- 生成证据包:将内容与稳定来源标识一起交给模型,例如
[S2] policy.md:18-26。 - 约束输出:要求每个关键判断引用来源;证据不足时明确报告缺口。
- 记录执行轨迹:保存检索条件、使用过的资料、最终答案和人工修订,便于审计与评估。
一个复杂任务往往要多次访问记忆。例如处理供应商风险时,Agent 可能先读取合同,再查询安全政策,最后核对最近的事故记录。相比一次性问答,这更接近“计划—检索—执行—验证”的循环。
来源链接也不只是装饰。它允许审核者快速区分三种情况:原文明确支持的事实、模型根据多份材料得出的推断,以及当前资料无法回答的问题。
可以这样实践:构造最小证据包
下面的示例不声称复现 V7 的内部实现,而是演示其核心工程模式:扫描本地 Markdown 或文本文件,按行切块,检索相关内容,并生成带来源编号的 Agent 提示词。
先准备两份示例资料:
mkdir -p knowledge
cat > knowledge/refund-policy.md <<'EOF'
# Refund policy
Enterprise customers may request a refund within 30 days of purchase.
Requests above 10000 USD require approval from the finance director.
The policy owner is the finance operations team.
EOF
cat > knowledge/support-runbook.md <<'EOF'
# Support runbook
Verify the customer ID and invoice before opening a refund case.
Attach the invoice, request date, and stated reason to the case.
Escalate policy exceptions to finance operations.
EOF
然后保存以下脚本为 memory_agent.py:
import sys
from pathlib import Path
ROOT = Path('knowledge')
CHUNK_LINES = 8
question = ' '.join(sys.argv[1:]) or 'What approval is needed for a large refund?'
terms = {
word.strip('.,?!:;()[]').lower()
for word in question.split()
if len(word.strip('.,?!:;()[]')) > 2
}
candidates = []
for path in ROOT.rglob('*'):
if path.suffix.lower() not in {'.md', '.txt'}:
continue
lines = path.read_text(encoding='utf-8').splitlines()
for offset in range(0, len(lines), CHUNK_LINES):
chunk_lines = lines[offset:offset + CHUNK_LINES]
text = '\n'.join(chunk_lines).strip()
if not text:
continue
lowered = text.lower()
score = sum(lowered.count(term) for term in terms)
if score:
candidates.append({
'score': score,
'path': path.as_posix(),
'start': offset + 1,
'end': offset + len(chunk_lines),
'text': text,
})
candidates.sort(key=lambda item: item['score'], reverse=True)
top = candidates[:4]
sources = []
for index, item in enumerate(top, start=1):
sources.append(
f'[S{index}] {item["path"]}:{item["start"]}-{item["end"]}\n'
f'{item["text"]}'
)
evidence = '\n\n'.join(sources) or 'No relevant source was found.'
prompt = f'''You are an internal operations agent.
Answer the task using only the supplied sources.
Cite factual claims with source IDs such as [S1].
If the evidence is insufficient, state what information is missing.
Task:
{question}
Sources:
{evidence}
'''
print(prompt)
运行时把问题作为参数传入:
python memory_agent.py 'What approval is needed for a refund above 10000 USD?'
脚本会生成一个可直接交给模型 API 的证据包。实际系统中,应将简单的词频匹配替换为混合检索,并补充以下能力:
- 向量语义检索与关键词检索并用;
- 在检索前执行用户和 Agent 的权限过滤;
- 记录文档版本、更新时间及正式状态;
- 为 PDF 页码、表格单元格或数据库记录生成稳定引用;
- 在模型输出后验证引用是否真实存在、是否支持对应陈述。
不要仅仅把整个共享盘拼进提示词。这样既增加成本,也会让过期内容、互相冲突的制度和潜在提示词注入同时进入模型上下文。
真正困难的是治理,而不是接入模型
拥有引用并不意味着答案必然正确。模型可能引用了一段真实文本,却对文本作出错误解释;资料本身也可能已经过期。至少需要防范以下风险:
- 过期知识:定义资料所有者、有效期和重新索引策略。
- 权限泄漏:检索结果必须继承源系统权限,不能只在界面层隐藏。
- 文档内提示词注入:把文件内容视为不可信数据,禁止其覆盖系统规则或调用未授权工具。
- 证据与结论不匹配:用自动检查和抽样人工审核验证引用支持度。
- 上下文膨胀:限制证据数量,并优先提供与当前任务步骤直接相关的片段。
- 静默失败:没有可靠资料时,让 Agent 停止、提问或升级给人工,而不是补全一个看似合理的答案。
落地时从一类高价值任务开始
与其一开始索引全公司的全部文件,不如选择一个边界清晰、结果可验证的流程,例如退款审核、合同条款核对或安全问卷填写。上线前可以使用这份检查清单:
- 是否定义了权威来源与资料负责人?
- 检索是否遵守原系统权限?
- 每个关键事实是否能跳转到具体来源?
- 文档更新后,索引能否及时刷新?
- 是否有一组真实任务用于测量检索召回率、引用正确率和任务成功率?
- 证据不足时,Agent 是否会明确拒答或请求人工处理?
V7 所展示的方向值得关注:企业 Agent 的竞争力不只来自更强的基础模型,也来自能否安全地连接公司已经拥有的知识。把文件变成有版本、有权限、有出处的上下文,Agent 才可能从“会回答问题”迈向“能够完成工作”。