graft
This page describes the cloud built-in graft skill — the combo agent platform Agent uses unified_search in the cloud process to graft across sessions.
- For local IDE (Cursor / Claude Code / Codex) access to cloud sessions over HTTPS, see skills/coding-agents/graft-comboagent.
- For mechanisms and underlying design (storage model, permission isolation, context injection strategy, etc.), see Core concepts · Graft cross-session grafting.
Why graft exists
When a complex project spans multiple independent analyses (e.g. ASPICE v1.14 baseline tracing, v1.17 baseline tracing, change analysis, coverage audit), cramming everything into one Session causes:
- Context explosion and lost detail during compaction
- Conflicting Agent configs / skill sets
- One mistake poisoning the whole run
- Hard to divide work and review
graft fixes this: each Session completes its own analysis; when collaboration is needed, structured outputs are grafted in on demand.
Graft = attach another session’s execution result to the current session’s context, use it, then leave — without polluting the host.
Core operations: three actions
The graft skill aligns with the existing kb_ids / doc_ids retrieval pattern. It is invoked through unified_search with three actions:
① list_sessions — discover
Returns sessions visible to the same tenant (yours + shared), with optional name keyword filter. Fields:
| Field | Description |
|---|---|
session_id | Unique session ID |
name | Human-readable session name |
agent_name | Agent hosting the session |
updated_at | Last update time |
visibility | private / shared |
② get_digest — see the big picture
Returns the session’s full execution digest table: what happened each round, what was produced, status, artifacts. Think table of contents before entering someone else’s session.
session_id accepts both ID and name (same _resolve_kb_ids pattern); names are resolved automatically.
③ get_round — fetch data
Grafts the exact inputs and outputs of a specific round from a specific session into the current context. The Agent can then:
- Compare conclusions across sessions
- Continue downstream work on intermediate data from another session
- Cross-check multi-perspective results
Standard workflow
If the user already gave the session name, you can skip Step 0 and start at Step 1.
Real-world examples
Example 1: ASPICE version change impact
Context: v1.14 baseline tracing and v1.17 baseline tracing finished in two separate sessions; you now need a diff analysis.
Savings: the two baseline documents need not be re-read — the Agent reuses structured JSON already produced. See ASPICE case scenario 2.
Example 2: Test coverage audit cross-check
Context: Scenario 1 completed requirement–test trace audit; scenario 4 re-audits from a “test” angle and compares with scenario 1.
Value: reduces single-view false positives; output is more trustworthy than single-session analysis. See ASPICE scenario 4.
Example 3: Patent drafting reusing prior novelty search
Context: A novelty search for a patent direction finished three days ago; you are now writing the specification.
Design principles
| Principle | Description |
|---|---|
| Explicit user activation | Must be triggered via /graft or clear natural language — the Agent must not graft across sessions without permission |
| Isolation within tenant | Cross-tenant is strictly forbidden; zero data leakage across tenants |
| On-demand reference | Do not copy the whole session — only graft the rounds / data needed |
| Full audit ledger | Every graft is logged: who, in which session, referenced which round of which session |
| Permission inheritance | You can only reference sessions you already have access to (yours + shared) |
FAQ
Q: Does graft pull the entire history of the other session?
No. get_round grafts structured data for one round only; with get_digest as navigation, you pull precisely what you need and control token growth.
Q: Can I graft while the other session is still running?
Yes. get_digest is a snapshot and does not block the other run. If the round you want does not exist yet, you get a clear error.
Q: How is graft different from Memory (long-term memory)?
| Dimension | graft | Memory (LTM) |
|---|---|---|
| Granularity | Session-level (multi-round) | Knowledge-unit level (single item) |
| Trigger | Explicit user intent | Agent retrieval on demand |
| Scope | All sessions same tenant | Scope set at write time |
| Use case | Reuse a full analysis run | Long-term knowledge base |
Related docs
- Core concepts · Graft — storage, isolation, injection
- ASPICE engineering loop case — full graft walkthrough
- memory-sdk — long-term memory (works with graft)
- Session — graft operates on sessions