对照 0.7 BREAKING CHANGE 逐文件复核 docs/,移除/修正已下线功能的描述: - 移除 LightRAG、独立图谱上传、Ollama、旧版 v1 模型配置等已删除能力的描述 - 知识库类型更新为 Milvus + 只读连接器(Dify、Notion),补全图谱存储链路 (Neo4j + PostgreSQL + Milvus 语义索引,RRF 融合) - 补全知识库工具集(find_kb_document/open_kb_document),修正 Skills 沙盒路径 为 /home/gem/skills、中间件目录为 agents/middlewares、评估入口为侧边栏 tab - 知识库权限三档修正为 全局共享/部门共享/指定人可访问 - 下载版本统一为 0.7.0.dev0 - README 新增简介、技术栈与 0.7 动态,特性描述细化 经核实保留 Neo4j(仍用于 Milvus 知识库内图谱)与 MCP enabled 机制(仍在用), 未误删。vitepress build 验证通过。
45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# 中间件系统
|
||
|
||
中间件是扩展智能体行为的重要机制。系统基于 LangChain 1.0 的中间件标准,支持在关键节点插入自定义逻辑。
|
||
|
||
## 核心中间件
|
||
|
||
### RuntimeConfigMiddleware
|
||
|
||
这是系统的默认中间件,负责在每次模型调用前注入运行时配置:
|
||
|
||
- 自动注入当前时间到系统提示词
|
||
- 根据配置动态加载工具列表
|
||
- 处理模型选择和加载
|
||
|
||
### inject_attachment_context
|
||
|
||
支持文件上传功能的中间件。如果智能体需要处理用户上传的文档,可以启用此中间件:
|
||
|
||
```python
|
||
from yuxi.agents.middlewares import inject_attachment_context
|
||
|
||
async def get_graph(self):
|
||
graph = create_agent(
|
||
model=load_chat_model("..."),
|
||
tools=tools,
|
||
middleware=[
|
||
inject_attachment_context, # 启用附件处理
|
||
context_aware_prompt, # 其他中间件
|
||
],
|
||
checkpointer=await self._get_checkpointer(),
|
||
)
|
||
return graph
|
||
```
|
||
|
||
### 启用文件上传
|
||
|
||
启用文件上传能力需要两步:
|
||
|
||
1. 在智能体类中声明 `capabilities = ["file_upload"]`
|
||
2. 添加上述中间件
|
||
|
||
## 自定义中间件
|
||
|
||
新增中间件时,将其放入 `backend/package/yuxi/agents/middlewares` 目录,然后在智能体的 `middleware` 列表中引用即可。该目录下已内置知识库挂载(`knowledge_base`)、Skills 注入(`skills`)、附件上下文(`attachment`)、子智能体任务(`subagent_task`)、上下文压缩(`summary`)、动态工具(`dynamic_tool`)等中间件。
|