Skip to content

Commit a794ef0

Browse files
committed
feat: Update SquadEval agent tools and enhance memory architecture documentation
1 parent d8851ef commit a794ef0

5 files changed

Lines changed: 67 additions & 6 deletions

File tree

.github/agents/SquadEval.agent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ handoffs:
1010
agent: SquadEval
1111
prompt: Continue at Step 5. The benchmark command finished in terminal. Use this output directory: <output-dir>
1212
send: false
13-
tools: ['search', 'read', 'execute/runInTerminal', 'vscode/askQuestions']
13+
tools: ['search', 'read', 'execute/runInTerminal', 'vscode/askQuestions', 'todo']
1414
---
1515

1616
# Squad Eval Agent

.github/skills/copilot-squad/SKILL.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,65 @@ All agents share context through `vscode/memory`. A shared status log lets the O
5454

5555
---
5656

57+
## Memory Architecture
58+
59+
Squads use the VS Code **memory tool** (`vscode/memory`) to persist and share context.
60+
The tool is enabled by default and can be toggled with the
61+
`github.copilot.chat.tools.memory.enabled` setting.
62+
63+
### Memory Scopes
64+
65+
Three scopes serve different lifetimes. Use the right scope for the right data:
66+
67+
| Scope | Path prefix | Persists | Use for |
68+
|---|---|---|---|
69+
| **User** | `/memories/` | Across all workspaces and sessions | Coding preferences, general patterns |
70+
| **Repository** | `/memories/repo/` | Across sessions in this workspace | Codebase conventions, build commands, architecture decisions |
71+
| **Session** | `/memories/session/` | Current conversation only (cleared when chat ends) | Task handoff files, in-progress plans, status logs |
72+
73+
> **First 200 lines of user memory are automatically loaded** into every agent's context
74+
> at session start. Keep user-scope files brief and well-structured.
75+
76+
**Squad handoff files always live under `/memories/session/`** so they are scoped to the
77+
task at hand and do not pollute future sessions. See `references/memory-conventions.md`
78+
for the full file layout and naming conventions.
79+
80+
**Repository-scoped facts** (e.g., "this project requires `Guid.CreateVersion7()`") belong
81+
under `/memories/repo/`. Only the `create` command is supported for that path.
82+
83+
### Managing Memory Files
84+
85+
VS Code provides two commands accessible via the Command Palette:
86+
87+
- **Chat: Show Memory Files** — lists all memory files across scopes; select one to view
88+
its contents. Memory file references in chat responses are also clickable.
89+
- **Chat: Clear All Memory Files** — removes all memory files across all scopes.
90+
Deleting individual files is not yet supported; ask the agent to overwrite specific
91+
files with updated content instead.
92+
93+
### Local Memory Tool vs. Copilot Memory
94+
95+
The local `vscode/memory` tool and **Copilot Memory** (GitHub-hosted) are complementary
96+
but distinct systems:
97+
98+
| | Local memory tool (`vscode/memory`) | Copilot Memory (GitHub) |
99+
|---|---|---|
100+
| Storage | Local machine | GitHub-hosted (remote) |
101+
| Scopes | User, repository, session | Repository only |
102+
| Shared across Copilot surfaces | No (VS Code only) | Yes (coding agent, code review, CLI) |
103+
| Created by | Agent or user during chat | Copilot agents automatically |
104+
| Enabled by default | Yes | No (opt-in) |
105+
| Expiration | Manual management | Automatic (28 days) |
106+
107+
Squad handoff files use the **local memory tool** — they are session-scoped and live only
108+
on the developer's machine. Copilot Memory is for durable repository insights that should
109+
be shared across all Copilot surfaces. Enable it via GitHub personal or organization
110+
settings and the `github.copilot.chat.copilotMemory.enabled` VS Code setting.
111+
112+
Reference: [Memory in VS Code agents](https://code.visualstudio.com/docs/copilot/agents/memory)
113+
114+
---
115+
57116
## Workflow
58117

59118
### Step 1 — Capture Intent

.github/skills/copilot-squad/scripts/grade.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,9 @@ def on_event(event):
191191
await client.start()
192192
t0 = time.monotonic()
193193
try:
194-
async with await client.create_session(session_config) as session:
194+
async with await client.create_session(**session_config) as session:
195195
session.on(on_event)
196-
await session.send({"prompt": grading_prompt})
196+
await session.send(grading_prompt)
197197
await asyncio.wait_for(done.wait(), timeout=120)
198198
finally:
199199
await client.stop()

.github/skills/copilot-squad/scripts/run_exec.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ async def _run_session_async(
380380
},
381381
}
382382
if system_message_content:
383-
session_config["system_message"] = {"content": system_message_content}
383+
session_config["system_message"] = {"mode": "append", "content": system_message_content}
384384
if model:
385385
session_config["model"] = model
386386

@@ -392,13 +392,13 @@ async def _run_session_async(
392392

393393
watcher: asyncio.Task | None = None
394394
try:
395-
async with await client.create_session(session_config) as session:
395+
async with await client.create_session(**session_config) as session:
396396
print(f"{label} Session open. Sending prompt …", flush=True)
397397
session.on(_make_event_handler(
398398
done, transcript_parts, errors_ref, last_activity,
399399
input_tokens_ref, output_tokens_ref,
400400
))
401-
await session.send({"prompt": prompt})
401+
await session.send(prompt)
402402
print(f"{label} Prompt sent. Waiting for session.idle (inactivity timeout={inactivity_timeout}s) …", flush=True)
403403
watcher = asyncio.create_task(
404404
_inactivity_watcher(done, last_activity, inactivity_timeout, errors_ref)

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ paket-files/
336336
__pycache__/
337337
.pytest_cache
338338
*.pyc
339+
.venv
339340

340341
# Cake - Uncomment if you are using it
341342
# tools/**
@@ -493,3 +494,4 @@ api/
493494

494495
# Agent hook audit logs (local only)
495496
.github/hooks/logs/
497+
.github/skills/copilot-squad/benchmarks/

0 commit comments

Comments
 (0)