Documentation Index
Fetch the complete documentation index at: https://simplellmfunc.cn/llms.txt
Use this file to discover all available pages before exploring further.
以上下文为中心
SimpleLLMFunc 不把 provider messages 当作一个任由各组件直接编辑的列表。每次 LLM 调用都会从三类输入编译出发送给提供商的消息列表:- Invocation 配置 —— docstring 提示词、模板参数、工具指导、输出契约、SelfRef 快照。
- 基础对话记录 —— 本次调用的 history / 当前消息。
- 运行时对话记录补丁 —— LLM 调用、工具执行、SelfRef 原语、中断处理和压缩产生的内部类型化编辑。
问题
在很多 Agent 系统中,“上下文”就是一个被到处修改的消息列表:- 工具直接追加结果;
- 编排循环直接塞入助手消息;
- 记忆系统在任意位置注入内容;
- 摘要器就地覆盖历史;
- 中断/取消处理留下半合法的消息结构。
运行时补丁模型
SimpleLLMFunc 使用ContextMutation 作为内部对话记录补丁协议。
Mutation 不是完整上下文,也不是主要用户 API。它只是 runtime 副作用对基础对话记录产生的类型化增量编辑,并且只在编译边界统一应用。
| 运行时事实 | 内部补丁 |
|---|---|
| LLM 产生最终助手消息 | AssistantMessageMutation |
| 工具返回文本 | ToolResultMutation |
| 工具返回多模态内容 | MultimodalToolResultMutation |
| SelfRef 压缩工作上下文 | ContextSummaryMutation |
| 用户中断 LLM 流式输出 | AssistantTruncatedMutation |
| 工具执行被取消 | ToolCancelledMutation |
Runtime 副作用不能直接修改 live transcript。它们只能产生类型化补丁,并由编译边界按顺序应用。
Mutation 不是什么
Mutation 的范围是有意收窄的。 它不是:- docstring / 系统提示词的来源;
- 模板参数的来源;
- 工具 schema 或工具最佳实践提示的来源;
@llm_chat初始history的来源;- UI 消费的 public event stream;
- 用户自定义 Agent 的主要入口。
为什么仍然重要
安全并发
多个工具可以并行完成。工具不直接写共享消息列表,而是产生结果补丁;运行时在下一个编译边界统一应用。可控压缩
上下文压缩是一个对话记录补丁。它可以用摘要替换过期工作消息,同时保留系统提示词和持久经验。合法的中断 / 取消状态
中断处理必须留下结构合法的对话记录。AssistantTruncatedMutation 和 ToolCancelledMutation 把这些修复逻辑集中到一个地方。
可测试的内部边界
补丁应用可以和提示词渲染、provider transport 分开测试。编译边界
编译边界有两个职责:- 用待处理 runtime mutation 修补基础对话记录。
- 根据修补后的对话记录 + invocation 配置渲染 provider 请求。
实际影响
对于大多数用户,mutation 是不可见的。你写函数、传 history、挂载工具、消费事件,并按需使用 SelfRef 原语。 如果你在调试框架内部,mutation 能解释 runtime 副作用如何变成对话记录编辑。如果你在写应用代码,主要入口仍然是:@llm_function/@llm_chat的签名和 docstring;history/chat_history;- 工具和事件流;
remember(...)、compact(...)等 SelfRef 原语。
深入:运行时补丁
查看内部 mutation 类型以及 runtime 何时产生这些对话记录补丁。