一个会话不应该是孤岛。当工程师做完一份 ASPICE 追溯分析、生成了一份 178 条变更的影响清单,下一个会话「做回归测试派生」时应当直接复用前一个会话的产出,而不是重跑一遍。Graft 把"接力"做成了一类基础能力。
它解决什么问题
工程师每天的工作分两端:
- 云端 combo agent:跑 ASPICE 追溯、需求审计、跨基线变更分析、新颖性检索等"重型"分析任务,并沉淀到云端 KB
- 本地 IDE(Cursor / Claude Code / Codex / Trae):改代码、跑测试、提 PR、写文档
两端要打通的不止是"复制粘贴 session 摘要"。Graft 在一个 skill 包里把这件事抽成三类用途:
| 用途 | 解决什么 | 典型场景 |
|---|---|---|
| A · KB 检索 | 让本地 agent 把云端 KB 当成 RAG 数据源——不依赖云端 session 也能直接查文档 / chunk | 写代码时翻阅团队规范、查历史项目设计文档 |
| B · Session 嫁接 | 把云端已有 session 的 digest / round / 产出物拉到本地上下文里继续工作 | 拿到同事的 ASPICE 追溯结果在本地继续改代码 |
| C · 任务派发 | 把一段新指令丢回云端某个长寿命 session 异步跑(重型计算 / 工具栈不在本地) | 本地触发"重跑覆盖率审计"任务 |
A 类是纯 RAG(不开 session);B 类是只读 graft;C 类是唯一一种"写入"入口——它不能创建/删除 session 或文件,只能给 已存在 的 session 多触发一轮。
架构
- 服务端:
api/apps/graft_app.py暴露 user-level 端点 - 认证:复用 web UI 的
itsdangerous签名 access_token,登录走平台已有的/v1/user/login - 客户端:4 个 Python 脚本(login / whoami / logout / call)+ 单一公钥文件
- 写动作拦截:在 client 与 server 双层拦截;只有
dispatch_task是 唯一允许 的写入路径
三类用法详解
A · KB 检索:本地 agent 当云端 KB 是 RAG
工程师在 Cursor 里改代码,遇到不熟的模块。问 AI:
"团队 ASPICE 追溯规范是什么?这个文件应该怎么标
req-Id注释?"
本地 agent 调用 graft-comboagent skill:
返回多个相关 chunk,本地 agent 直接基于这些证据回答 —— 不用打开 web 端,不用启动新的云端 session。
适用场景:
| 场景 | 价值 |
|---|---|
| 查团队编码规范 | 本地 IDE 不离手 |
| 查历史项目设计文档 | 写代码时随时查 |
| 查客户合同 / 客户惯例 | 报价时秒级取 |
| 查 ASPICE / 26262 / 21434 标准条款 | 写代码时合规对照 |
B · Session 嫁接:拿同事的会话继续工作
场景:同事在云端做完一次 ASPICE 追溯,生成了 178 条变更影响清单。你在本地 IDE 里要根据这份清单改代码。
本地 agent 拿到这些数据后,直接基于真实的变更清单改代码、跑测试、提 PR —— 而不是"复制粘贴一段摘要"。
适用场景:
| 场景 | 价值 |
|---|---|
| 接手同事的 ASPICE 追溯结果 | 不重跑分析 |
| 复用上一周的需求理解 | 上下文延续 |
| 跨周期跟进一个长项目 | 历史可查 |
C · 任务派发:把重活丢回云端
场景:本地 IDE 里改完代码,要重跑一次完整 ASPICE 覆盖率审计 —— 这事在本地跑不动(需要重索引 + 跨 ALM 拉数据 + 重模型)。
云端 session 异步跑,跑完后本地通过 get_round 拉结果。
强约束:
dispatch_task是 唯一允许 的写入入口- 不能创建新 session
- 不能删除 session / 文件
- 只能给 已存在 的 session 多触发一轮
这种设计保证:本地 agent 不会因为 prompt injection 在云端做破坏性操作。
强约束(安全设计)
| 维度 | 设计 |
|---|---|
| 认证 | RSA 加密 password 登录,得到 signed token;token 文件权限 0600 |
| 租户隔离 | _verify_graft_access 校验同租户,不允许跨租户访问 |
| 可见性 | 只能看到自己有权限的 session / KB / 文件 |
| 写动作双层拦截 | client 端拦 + server 端拦,双保险 |
| 审计日志 | 每次 graft 调用都记录 timestamp + user + action |
与"复制粘贴 session 摘要"的差异
| 维度 | 复制粘贴摘要 | Graft |
|---|---|---|
| 数据量 | 受限于 LLM 上下文窗口 | 按需检索任意大量数据 |
| 真实性 | 摘要可能丢关键细节 | 原始数据可下载 |
| 更新 | 摘要发完就过时 | 实时拉取最新 |
| 联动 | 单向(本地 → 本地) | 双向(本地 ↔ 云端) |
| 安全 | 复制粘贴可能泄露 | 强制走授权链路 |
安装与首次使用
详细安装与配置见 graft-comboagent 技能页。
典型工作流:ASPICE 案例的本地-云端联动
常见问题
Q:本地 agent 安全吗?会把代码上传到云端吗? A:本地 agent 默认不上传代码。只有当工程师明确调用 graft action(如检索 KB、嫁接 session)才发起请求,且每次请求的内容工程师可见。
Q:能在生产 CI 里跑 graft 吗? A:能。但建议用专门的 service account 登录,避免用个人 token。
Q:dispatch_task 能不能跑任意命令? A:能跑任意 prompt,但只在已存在的 session 上下文里跑,并继承该 session 的权限。等于工程师在自己的 session 里多发了一句话。
Q:与 Cursor 自带的 docs 索引比有什么不同? A:Cursor docs 是单向静态文档。Graft 能力上覆盖:动态会话嫁接(B 类)、任务异步派发(C 类)、跨语种 KB 检索(A 类)。
Q:私有化部署支持吗? A:支持。把 server URL 改成客户内网地址即可。
完整 action 清单与 SKILL.md 见 graft-comboagent 技能页;底层机制看 核心概念 · Graft。
作者
Nox-Lumen Tech-team
发布日期
2026年5月14日