mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
1.9 KiB
1.9 KiB
A2A Collaboration Workflow
Overview
Agents communicate directly via SDK Server (port 9000) for true peer-to-peer messaging.
Key: A2A requires task_id - it's about existing tasks, NOT task creation.
Flow
1. Discover → roboco_agent_discover(role, team, skill)
2. Request → roboco_agent_request(target, skill, message, task_id)
3. Check → roboco_a2a_check() polls your inbox (auto-notified via hook)
4. Respond → Work on task or reply via roboco_agent_request
Delivery
| Target State | Delivery | Creates Notification? |
|---|---|---|
| Online | Direct HTTP to SDK | NO |
| Offline | Fallback via API | YES (spawns target) |
Example
# Request code review for task ABC123
result = roboco_agent_request(
target_agent="be-qa",
skill="code_review",
message="Please review my changes",
task_id="ABC123"
)
# result.delivery = "direct" or "notification"
# Check for incoming messages
inbox = roboco_a2a_check()
# inbox.messages = [{from, task_id, skill, message, priority}, ...]
Urgency
roboco_agent_request(..., options={"urgent": True}) # Priority queue
Agent Skills
| Role | Skills |
|---|---|
| Developer | code_review, implementation, debugging, revision |
| QA | code_review, testing, qa_review |
| Documenter | documentation, api_docs |
| PM | task_planning, coordination, clarification |
Task Creation Rules
Only PMs can create tasks.
If you receive an A2A request that needs new work:
- Escalate:
roboco_task_escalate(task_id, "Needs subtask for X") - PM decides whether to create subtask
Permissions
All agents can:
- Discover other agents
- Send A2A requests (must include task_id)
- Check request status
All agents CANNOT:
- Create tasks via A2A (no automatic task creation)
- Send A2A without a task_id