Skip to content

feat(mcp): steer callers toward parallel, evidence-cited investigations#440

Draft
LikiosSedo wants to merge 3 commits into
mainfrom
feat/a2a-mcp-caller-guidance
Draft

feat(mcp): steer callers toward parallel, evidence-cited investigations#440
LikiosSedo wants to merge 3 commits into
mainfrom
feat/a2a-mcp-caller-guidance

Conversation

@LikiosSedo

Copy link
Copy Markdown
Collaborator

Mirror of sicore feat/a2a-mcp-caller-guidance — the two instruction surfaces (sicore mcpInstructions/tool defs and this adapter's SERVER_INSTRUCTIONS/TOOL_DEFINITIONS) are a verbatim-sync contract.

Why

Live testing against the production MCP endpoint (2026-07-22) showed the tool layer is healthier than the instructions imply:

  • Concurrency works: 3 investigations submitted simultaneously all progressed in parallel (two tasks running tools at the same instant), all completed within 50s wall clock. The tracker admits up to 50 active tasks per agent. But the current instructions read as a serial protocol, so consuming models investigate one hypothesis at a time.
  • Capability self-description works when asked: "list your bound clusters" returns all 9 cluster names in ~15s — but a caller has to know to ask, otherwise it burns a round guessing target names.
  • Evidence citation works when asked: requesting "list data sources consulted + confidence" produced a field-level 5-source evidence appendix with a calibrated confidence estimate.

All three are caller-guidance gaps, not server gaps. This adds three sentences to the instructions and one clause to the siclaw_investigate description; no schema or behavior change.

Testing

  • 30 adapter tests green (npx vitest run).

Mirror of sicore feat/a2a-mcp-caller-guidance (the two instruction
surfaces are a verbatim-sync contract). The instructions read as a
serial protocol, but the A2A task layer runs independent investigations
concurrently and the agent answers capability and evidence/confidence
requests well when asked. Tell consuming models to fan out independent
hypotheses, probe bound clusters before guessing target names, and
request source citations for diagnostic conclusions.

Text-only; 30 tests green.
@LikiosSedo

Copy link
Copy Markdown
Collaborator Author

Closing without merge: all current consumers use the HTTP MCP endpoint served by sicore (/api/v1/mcp), so the stdio adapter's instruction text has no runtime effect. The sicore side carries the change. Branch feat/a2a-mcp-caller-guidance is kept as a ready-made sync patch if the adapter ever ships a v0.1.1.

@LikiosSedo LikiosSedo closed this Jul 22, 2026
@LikiosSedo LikiosSedo reopened this Jul 22, 2026
@LikiosSedo
LikiosSedo marked this pull request as draft July 22, 2026 13:28
Working responses deliberately withheld the partial report for
compactness, which left pollers with only progress_chars and the last
tool-event status string — enough to know the task is alive, not enough
to relay what the investigation is doing. Expose the last 400 runes of
the partial report as progress_tail (text + structuredContent), keeping
the compactness property: the tail is bounded regardless of report size
and terminal responses are unchanged.

Also count progress_chars in code points instead of UTF-16 units so the
number matches the sicore HTTP endpoint's rune count on CJK reports.

Mirror of sicore feat/a2a-mcp-progress-tail (verbatim-sync contract).
Review finding on the sicore mirror (MR !693): taskView added the
working-task tail unconditionally, so siclaw_list_tasks rows started
carrying investigation text — listings exist to recover task IDs and
deliberately withhold stored reports. Rename the includeTerminalResult
parameter to includeReport and gate BOTH the terminal result and the
working progress_tail on it; add a regression test that a working task's
listing row carries neither.

Mirror of the same fix on sicore feat/a2a-mcp-progress-tail.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant