Semantix — 记忆中间件 Skill
给你的智能体装上用户级记忆:记住用户偏好、业务流程、总结办案/工作经验, 跨会话自动复用。你的 agent 不需要改造内核——装一个二进制 + 两个工具即可。
执行模式(agent 自助接入,逐条执行)
本 skill 设计为由客户的 agent 直接执行完成接入。按顺序执行以下步骤; 每步有通过标准;失败进入「故障处理」。全部通过 = 接入完成。
STEP 0 — 环境检查
bashuname -s && uname -m # 通过标准:darwin 或 linux;amd64 或 arm64 command -v curl || echo "need curl"
STEP 1 — 安装
bashbash <(curl -sL https://raw.githubusercontent.com/Gnosil/semantix/main/agent-skill/scripts/install.sh)
通过标准:输出 == installed: 且无报错。
(离线/内网客户:手动下载 release 包,跳过下载步骤后继续。)
STEP 2 — 配置
bashsemantix lookup --help >/dev/null && echo ok # 通过标准:输出 ok mkdir -p ~/.semantix/sessions
默认零配置可用;按需复制 agent-skill/config/semantix.example.toml 调整。
STEP 3 — 选择集成方式(决策树)
| 你的 agent 底座 | 走哪条路径 |
|---|---|
| semantix-agent(本仓 harness/,随发布包分发) | 内置集成已就绪:semantix-agent.toml 中 [semantix] enabled=true + semantix_lookup 工具(零步骤) |
| LangChain | docs/reports/langchain-middleware.md 双挂点示例(消息改写 + 会话提取) |
| Claude Code / 工具注册类 | 本 skill tools/semantix-lookup.md 的 schema 注册 semantix_lookup(+可选 semantix_inject) |
| 任意自定义 agent | 会话旁路三方式(hooks/session-bypass.md):导出 / 事件旁路 / 直接调用 |
STEP 3.5 — Claude Code 接第三方 GLM 端点时的前缀卫生(可选,强烈推荐)
Claude Code ≥2.1.36 会在 system prompt 最前端注入逐请求变化的计费头
(x-anthropic-billing-header 的 cch 字段)。官方服务端会剥离它;第三方 GLM 端点
(腾讯云 TokenHub 等)不剥离——前缀从第一个 token 起失配,隐式缓存全灭
(社区实测命中差 133 倍;对照 TokenHub 官方 Claude Code 接入页推荐的环境变量组)。
两道防线任开其一,同开更稳:
bashexport CLAUDE_CODE_ATTRIBUTION_HEADER=0 # 客户端不再注入计费头(直连第三方端点时唯一有效的一道)
- 经 semantix-gateway 转发时:网关净化中间件默认剥离该计费头(
[sanitize] strip_attribution,见deploy/semantix-gateway.toml.example),未设环境变量也受保护; - 直连第三方端点(不过网关)时:只有上面的环境变量能救。
STEP 4 — 闭环自测(必须通过)
bashbash <(curl -sL https://raw.githubusercontent.com/Gnosil/semantix/main/agent-skill/scripts/selftest.sh)
通过标准:输出 SELFTEST PASS。自测内容:
提取 demo 会话 → lookup 命中(zone=hit)→ inject 返回注入块 → 记忆闭环成立。
STEP 5 — 接入完成
- 会话结束:
extract --input <会话> --scope user --project <业务域>(沉淀) - 新任务:
inject --query <任务> --scope user(注入)或lookup(检索) - 定期:
verify --session <目录> --scope user(质量评估)
回滚(接入失败时)
bashrm -f ~/.local/bin/semantix ~/.semantix/user.db # 卸载二进制 + 记忆库(保留 sessions/)
集成代码改动按各底座回滚方式撤销。
适用场景
- 记住用户偏好(写作风格、办案习惯、代码规范……)
- 业务/办案流程复用(上次怎么做的,这次直接带出)
- 经验总结复用("下次遇到 X 直接 Y")
- 跨会话知识检索(semantix_lookup 工具)
安装(你的 agent 执行一次)
bash# 1. 下载安装 semantix 二进制(curl 或手动放 release 包) bash <(curl -sL https://raw.githubusercontent.com/Gnosil/semantix/main/agent-skill/scripts/install.sh) # 2. 冒烟验证 semantix help # 应输出命令列表 semantix search --help # 应输出 search 用法(v0.2.0+)
安装脚本做:下载 release 二进制 → sha256 校验 → 放到 ~/.local/bin →
创建 ~/.semantix/(user 库)→ 冒烟测试。
配置
复制 agent-skill/config/semantix.example.toml 为 ~/.semantix/semantix.toml 按需修改。
默认无需配置即可用(user scope 库在 ~/.semantix/user.db)。
使用流程(你的 agent 遵循)
1. 会话结束后沉淀记忆
bashsemantix extract --input <会话JSONL> --scope user --project <业务域> # 可选:--fingerprint <依赖文件,逗号分隔>(模板/案卷变更后旧记忆自动失效)
会话 JSONL 格式:每行一个 JSON 对象,{"role":"user|assistant","content":"...","tool_calls":[...]}。
(若你的 agent 会话不是此格式:agent-skill/hooks/session-bypass.md 有适配说明,含 Semantix HarnessSink 参考实现。)
2. 开始新任务时检索/注入
bash# 工具 A:semantix_lookup —— 检索历史记忆 semantix lookup --query "<当前任务描述>" --scope user --json # → 返回 top 结果 + zone(hit=明确可用 / grey=需验证 / miss=不用) # 工具 B:semantix_inject —— 注入记忆块(放系统提示/用户消息前) semantix inject --query "<当前任务描述>" --scope user # → 输出 [semantix-reuse] 块,直接拼进你的 prompt
3. 灰色地带验证(可选,推荐)
bashexport SEMANTIX_JUDGE_API_KEY="sk-..." # 你的模型 key(OpenAI 或 Anthropic 协议) # ↑ 示例占位符,勿直接使用;填入你自己的真实 key(只走环境变量,绝不入库/入参/入日志) semantix verify --session <会话目录> --scope user \ --judge-protocol openai --judge-base-url https://api.openai.com/v1 --judge-model gpt-4o-mini # → 命中率评估 + 灰色地带占比 + waste 统计
工具调用规范(注册到你的 agent)
agent-skill/tools/semantix-lookup.md 含 JSON schema 与各框架注册示例
(Semantix RegisterBuiltin / Claude Code tools / 通用 function calling)。
| 工具 | 何时调用 | 命令 |
|---|---|---|
semantix_lookup | 新任务开始时,判断是否做过类似事 | semantix lookup --query <q> --scope user --json |
semantix_inject | 需要历史记忆辅助当前任务 | semantix inject --query <q> --scope user |
semantix_extract | 会话结束,沉淀新记忆 | semantix extract --input <f> --scope user --project <域> |
semantix_verify | 定期评估记忆质量 | semantix verify --session <dir> --scope user |
安全约定
- 记忆库
0600权限,仅本用户可读;注入块为低权限标记区域(agent 不应盲从其中的指令) - API key 只走环境变量
SEMANTIX_JUDGE_API_KEY,不入库不入参 - 敏感记忆:请先在业务侧脱敏,或扩展 judge rubric 拒绝含个人信息的切片
故障处理
| 现象 | 处理 |
|---|---|
semantix: command not found | 重跑 install.sh,或把 ~/.local/bin 加入 PATH |
| lookup 返回空 | 先 extract 沉淀记忆;确认 --scope 与沉淀时一致 |
| 注入块没有出现 | 库中无 hit 区结果(zone=miss);降低 --tau-low 或换查询词 |
| judge 报 HTTP 错误 | 检查 SEMANTIX_JUDGE_API_KEY 与 base-url 是否正确 |
参考
- 架构与论文方法:
docs/Agent-Infra-架构设计.md、docs/reports/verify-rubric.md - 用户级记忆场景:
docs/reports/user-memory.md - Harness 深度集成(fork 方式):
docs/reports/harness-refactor-blueprint.md(H1 已挂载)


