agentleFS
systemind-teamsystemind-team/AICOO-Skills/skills/talk-to-agent/SKILL.md

talk-to-agent

Skill35 starsChanged 4 months agoMITView on GitHub

Use this skill when the user wants to contact another person's Aicoo agent (agent-to-agent RPC), send human inbox messages, request/accept agent access, bridge from share links to friend+agent connections, or chat via public share link (`/a/<token>`). Triggers on: 'contact their agent', 'agent-to-agent', 'talk to their AI', 'ask their COO', '/v1/agent/message', '/v1/network/request', '/v1/network/accept', '/v1/network/connect', 'guest-v04', or any Aicoo agent link URL.

  • Reads credentials
  • Sends data out

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 5 are distinctive, and 12 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 12

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the user wants AI-to-AI communication in Aicoo.

    line 7
  2. Very specific:

    Look at network.contacts for usernames and direction (mutual, inbound, outbound).

    line 36
  3. Very specific:

    Use _coo suffix for agent RPC:

    line 40
  4. Very specific:

    Use group: prefix with conversation ID for group messages (fire-and-forget):

    line 82
  5. Distinctive:

    Use plain username for human delivery (no AI response):

    line 116
  6. Very specific:

    Do not use send_message_to_human when user asks for agent dialogue.

    line 147
  7. Very specific:

    If alice_coo returns 403, request access first.

    line 153
  8. Distinctive:

    Use plain username when the user asks to add someone as a friend/contact:

    line 160
  9. Very specific:

    Use _coo when the user specifically wants to talk to the other person's Aicoo agent:

    line 171
  10. Distinctive:

    If you already have a share token, connect instantly without waiting for request/accept:

    line 210
  11. Very specific:

    Keep sessionKey for multi-turn continuation.

    line 248
  12. Very specific:

    If user asks to notify the person (not their agent), use send_message_to_human tool from Aicoo runtime.

    line 287
  13. Distinctive:

    If direct channel fails with 403:

    line 291
  14. Very specific:

    Wait for acceptance (GET /v1/network/requests)

    line 294
  15. Very specific:

    Call POST /v1/agent/message to <username>_coo

    line 300
  16. Very specific:

    Never expose AICOO_API_KEY or legacy PULSE_API_KEY in outputs.

    line 309
  17. Very specific:

    Use _coo for agent targets in /v1/agent/message and for agent access requests in /v1/network/request.

    line 310

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Talk to Agent — Unified Message Route + Handshake + Link Bridge + Share Link

Use this skill when the user wants AI-to-AI communication in Aicoo.

Aicoo supports four related flows:

  1. Unified Message Route (/v1/agent/message)
  2. Friend Request Handshake (/v1/network/request|requests|accept)
  3. Share Link -> Friend+Agent Bridge (/v1/network/connect)
  4. Share Link Guest (/api/chat/guest-v04)

Channel Selection

ChannelUse whenAuthEndpoint
Unified Message RouteYou want one endpoint for human inbox, agent RPC, or group messagesAPI keyPOST /api/v1/agent/message
Friend Request HandshakeYou do not have agent access yetAPI keyPOST /api/v1/network/request, GET /api/v1/network/requests, POST /api/v1/network/accept
Link BridgeYou have a share token and want instant friend+agent connectionAPI keyPOST /api/v1/network/connect
Share Link GuestYou only have a shared link (https://www.aicoo.io/a/<token>)No API key for anonymous links; API key or browser session for requireSignIn:trueGET/POST /api/chat/guest-v04

Channel A: Unified Message Route (/v1/agent/message)

A1) Discover reachable contacts

curl -s "https://www.aicoo.io/api/v1/network" \
  -H "Authorization: Bearer $AICOO_API_KEY" | jq .

Look at network.contacts for usernames and direction (mutual, inbound, outbound).

A2) Send to agent (username_coo)

Use _coo suffix for agent RPC:

curl -s -X POST "https://www.aicoo.io/api/v1/agent/message" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "alice_coo",
    "message": "Hi, can you summarize what Alice is focused on this week?",
    "intent": "query"
  }' | jq .

Expected response shape:

{
  "success": true,
  "agentName": "Alice's AI COO",
  "ownerName": "Alice",
  "response": "...",
  "toolsUsed": 0,
  "conversationId": 1234
}

Expected response shape (agent RPC):

{
  "success": true,
  "mode": "agent",
  "agentName": "Alice's AI COO",
  "ownerName": "Alice",
  "response": "...",
  "toolsUsed": 0,
  "conversationId": 1234
}

A3) Send to group (group:<id>)

Use group: prefix with conversation ID for group messages (fire-and-forget):

curl -s -X POST "https://www.aicoo.io/api/v1/agent/message" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "group:42",
    "message": "Deployment complete. All tests green.",
    "intent": "inform",
    "clientMessageId": "deployment-2026-07-05"
  }' | jq .

Expected response shape (group delivery):

{
  "success": true,
  "mode": "group",
  "groupName": "Launch Team",
  "conversationId": 42,
  "messageId": 500,
  "delivered": true,
  "response": null,
  "duplicate": false,
  "elapsedMs": 85
}

Requires active membership in the group. If the API-key owner is not a member, the route returns 404 with Group not found or access denied. Use clientMessageId for idempotent retries.

A4) Send to human inbox (username)

Use plain username for human delivery (no AI response):

curl -s -X POST "https://www.aicoo.io/api/v1/agent/message" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "alice",
    "message": "Meeting starts in 30 minutes.",
    "intent": "inform"
  }' | jq .

Expected response shape (human delivery):

{
  "success": true,
  "mode": "human",
  "delivered": true,
  "response": null
}

A5) Internal tool routing (Aicoo agent runtime)

Inside Aicoo agent runtime, use:

  • contact_agent for agent-to-agent request/response (waits for reply)
  • send_message_to_human for human inbox fire-and-forget

Do not use send_message_to_human when user asks for agent dialogue.


Channel B: Friend Request Handshake

If alice_coo returns 403, request access first.

B1) Add friend / contact

  • alice -> friend request
  • alice_coo -> agent access request

Use plain username when the user asks to add someone as a friend/contact:

curl -s -X POST "https://www.aicoo.io/api/v1/network/request" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "to": "alice" }' | jq .

B2) Request agent access

Use _coo when the user specifically wants to talk to the other person's Aicoo agent:

curl -s -X POST "https://www.aicoo.io/api/v1/network/request" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "to": "alice_coo" }' | jq .

B3) Check pending

curl -s "https://www.aicoo.io/api/v1/network/requests" \
  -H "Authorization: Bearer $AICOO_API_KEY" | jq .

B4) Accept or reject incoming

curl -s -X POST "https://www.aicoo.io/api/v1/network/accept" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": 42,
    "type": "agent",
    "action": "accept",
    "permissions": {
      "notesAccess": { "scope": "all", "access": "read" },
      "calendarAccess": { "read": "free_busy", "write": false },
      "emailAccess": { "read": false },
      "todoAccess": { "read": false, "create": false }
    }
  }' | jq .

Channel C: Share Link -> Friend+Agent Bridge

If you already have a share token, connect instantly without waiting for request/accept:

curl -s -X POST "https://www.aicoo.io/api/v1/network/connect" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "shareToken": "MwFyATaW0w" }' | jq .

This creates:

  • friendship (bidirectional)
  • agent permission (owner -> you) using link metadata defaults
  • shared_agent conversation

Channel D: Share Link Guest (Public Sandbox)

Use this when you only have an aicoo.io/a/<token> link. If the link has requireSignIn:false, anonymous guest access works as before. If the link has requireSignIn:true, call guest-v04 with either a browser session cookie or an Aicoo API key; the API key is treated as the caller's signed-in identity. Use POST /api/v1/network/connect when the user wants to turn the link into a durable friend + agent connection.

C1) Inspect link metadata

curl -s "https://www.aicoo.io/api/chat/guest-v04?token=<TOKEN>&meta=true" | jq .

C2) Send message (JSON mode)

curl -s -X POST "https://www.aicoo.io/api/chat/guest-v04" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "<TOKEN>",
    "message": "What can you help with?",
    "stream": false
  }' | jq .

Keep sessionKey for multi-turn continuation.

For requireSignIn:true links from Claude Code or another headless agent, include the caller's API key:

curl -s -X POST "https://www.aicoo.io/api/chat/guest-v04" \
  -H "Authorization: Bearer $AICOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "<TOKEN>",
    "message": "What can you help with?",
    "stream": false
  }' | jq .

Error Handling

StatusMeaningAction
401Share link requires sign-in (requireSignIn:true)Open /a/<token> in browser and sign in, pass Authorization: Bearer $AICOO_API_KEY to guest-v04, or use POST /v1/network/connect for durable access
403No agent access to target agent (<username>_coo)Use POST /v1/network/request or POST /v1/network/connect if token exists
404User or link not foundVerify username/token
429Rate/message limit hitRetry later
500Server errorRetry once, then surface error

Practical Patterns

Pattern 1: Fast A2A query

  1. GET /v1/network to confirm username
  2. POST /v1/agent/message to <username>_coo
  3. Return response to user

Pattern 2: Human escalation from agent runtime

If user asks to notify the person (not their agent), use send_message_to_human tool from Aicoo runtime.

Pattern 3: No relationship yet

If direct channel fails with 403:

  1. POST /v1/network/request to <username> for friend/contact, or <username>_coo for agent access
  2. Wait for acceptance (GET /v1/network/requests)
  3. Retry POST /v1/agent/message

Pattern 4: Fast bridge from link

  1. POST /v1/network/connect with shareToken
  2. Call POST /v1/agent/message to <username>_coo
  3. Continue on private channel instead of guest link

Security Notes

  • Friend Agent Direct is permission-gated and private.
  • Share links are sandboxed by link capabilities; anonymous guest chat only works when requireSignIn:false, while requireSignIn:true requires a browser session or the caller's API key.
  • Never expose AICOO_API_KEY or legacy PULSE_API_KEY in outputs.
  • Use _coo for agent targets in /v1/agent/message and for agent access requests in /v1/network/request.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.