{"skill":{"slug":"arta","displayName":"ARTA: Agentic Real-Time Awareness","summary":"A universal layer for agents to have real-time self-awareness across channels and sessions. ARTA enables an agent to know what it is doing in other channels...","description":"---\nname: arta\nversion: 0.3.0\ntitle: ARTA — Agentic Real-Time Awareness\ndescription: In-memory awareness layer for agents to track their own activity within a single process. Provides queryable awareness of what an agent is doing in other sessions. Note: Cross-process/cross-instance sharing requires a shared backend (future enhancement).\nmetadata: {\"openclaw\":{\"emoji\":\"🧩\",\"category\":\"awareness\",\"tags\":[\"awareness\",\"self-awareness\",\"session\",\"identity\"]}}\n---\n\n# ARTA — Agentic Real-Time Awareness\n\n**In-memory self-awareness for agents.**\n\n⚠️ **Current Limitation:** This version provides awareness within a single agent process. True cross-instance/cross-agent awareness would require a shared backend (Redis, database, or OpenClaw global API) — not yet implemented.\n\n---\n\n## What is ARTA?\n\nARTA gives agents **awareness** of their own activity across sessions within a single process.\n\nWithout ARTA:\n- Agent is fragmented across sessions\n- Each session is isolated\n- Can't answer: \"What am I doing in other sessions?\"\n\nWith ARTA:\n- Tracks own sessions\n- Queryable state\n- Can say: \"I'm also talking to you in another session\"\n\n---\n\n## Core Concepts\n\n### 1. Agent Instance\n\nA single session of an agent.\n\n```json\n{\n  \"instanceId\": \"session-abc123\",\n  \"agent\": \"my-agent\",\n  \"channel\": \"telegram:CHAT_ID\",\n  \"human\": \"USER_NAME\",\n  \"task\": \"discussing ARTA\",\n  \"status\": \"active\"\n}\n```\n\n### 2. Awareness Graph\n\nThe state of agent instances:\n\n```json\n{\n  \"agents\": {\n    \"my-agent\": {\n      \"instances\": [\n        {\n          \"instanceId\": \"session-1\",\n          \"channel\": \"telegram:CHAT_ID_1\",\n          \"task\": \"discussing ARTA\",\n          \"status\": \"active\"\n        },\n        {\n          \"instanceId\": \"session-2\",\n          \"channel\": \"discord:CHANNEL_ID\",\n          \"task\": \"code review\",\n          \"status\": \"active\"\n        }\n      ]\n    }\n  }\n}\n```\n\n### 3. Context Broker\n\nThe queryable API:\n- \"What am I doing elsewhere?\"\n- \"What is in channel X?\"\n- \"Who is the human talking to?\"\n\n---\n\n## What ARTA Reads from OpenClaw\n\nWhen running within OpenClaw, ARTA can access:\n\n| Data | Example | Purpose |\n|------|---------|---------|\n| Channel type | `telegram`, `discord` | Identify channel |\n| Chat ID | `123456789` | Unique channel identifier |\n| Sender name | `john_smith` | Human identifier |\n| Session ID | `session-abc` | Unique session identifier |\n\n**Note:** ARTA reads metadata only — not message content, not credentials, not bot tokens.\n\n---\n\n## Configuration\n\n### Option 1: Auto-Configure from OpenClaw\n\n```javascript\n// Auto-detect from OpenClaw context\nconst channel = process.env.OPENCLAW_CHANNEL || 'unknown';\nconst chatId = process.env.OPENCLAW_CHAT_ID || 'unknown';\nconst human = process.env.OPENCLAW_SENDER_NAME || 'unknown';\n\nconst channelId = `${channel}:${chatId}`;\n```\n\n### Option 2: Environment Variables\n\n```bash\n# Optional - ARTA will auto-detect from OpenClaw if not set\nexport ARTA_AGENT_NAME=\"your-agent-name\"\nexport ARTA_CHANNEL_TYPE=\"telegram\"\nexport ARTA_CHAT_ID=\"123456789\"\nexport ARTA_HUMAN_NAME=\"human-name\"\n```\n\n### Bot Tokens\n\n**ARTA does NOT require bot tokens.** The skill works with metadata (channel IDs, user names) only. If you see references to bot tokens in documentation, they are for reference — not required.\n\n---\n\n## Protocol\n\n### Register\n\n```javascript\narta.register({\n  instanceId: \"session-abc\",\n  channel: \"telegram:CHAT_ID\",\n  human: \"USER_NAME\",\n  task: \"initial task\"\n});\n```\n\n### Update\n\n```javascript\narta.update({\n  instanceId: \"session-abc\",\n  task: \"new task\",\n  status: \"active\"\n});\n```\n\n### Query\n\n```javascript\nconst otherInstances = arta.queryOtherThan(\"session-abc\");\n```\n\n### Leave\n\n```javascript\narta.leave({\n  instanceId: \"session-abc\"\n});\n```\n\n---\n\n## Implementation\n\n```javascript\nclass ARTA {\n  constructor(agentName) {\n    this.agentName = agentName;\n    this.instances = new Map();\n  }\n\n  register({ instanceId, channel, human, task = 'idle' }) {\n    this.instances.set(instanceId, {\n      instanceId,\n      channel,\n      human,\n      task,\n      status: 'active',\n      started: Date.now(),\n      lastHeartbeat: Date.now()\n    });\n  }\n\n  update({ instanceId, task, status = 'active' }) {\n    const instance = this.instances.get(instanceId);\n    if (instance) {\n      instance.task = task;\n      instance.status = status;\n      instance.lastHeartbeat = Date.now();\n    }\n  }\n\n  leave({ instanceId }) {\n    this.instances.delete(instanceId);\n  }\n\n  query() {\n    return Array.from(this.instances.values());\n  }\n\n  queryOtherThan(instanceId) {\n    return this.query().filter(i => i.instanceId !== instanceId);\n  }\n\n  queryByChannel(channel) {\n    return this.query().filter(i => i.channel === channel);\n  }\n\n  queryByHuman(human) {\n    return this.query().filter(i => i.human === human);\n  }\n}\n```\n\n---\n\n## Integration with IBT\n\n```javascript\n// In IBT Observe phase\nconst otherTasks = arta.queryOtherThan(currentSessionId);\nif (otherTasks.length > 0) {\n  // Agent is active in other sessions\n}\n```\n\n---\n\n## Security & Privacy\n\n### What ARTA Reads (from OpenClaw context):\n- Channel type and ID (metadata)\n- Human name from sender\n- Agent name from config\n\n### What ARTA Stores (in-memory only):\n- Session ID\n- Channel identifier\n- Human name\n- Task description\n- Status\n\n### What ARTA NEVER Does:\n- ❌ Reads bot tokens or credentials\n- ❌ Stores credentials\n- ❌ Exfiltrates data\n- ❌ Makes external network calls\n- ❌ Persists data to disk\n- ❌ Logs message content\n- ❌ Shares data with other agents\n\n---\n\n## Install\n\n```bash\nclawhub install arta\n```\n\n---\n\n## Version\n\n0.3.0 — Clarified in-memory only limitation, removed bot token requirements, specified metadata-only access\n","topics":["Agentic"],"tags":{"latest":"0.3.0"},"stats":{"comments":0,"downloads":629,"installsAllTime":24,"installsCurrent":0,"stars":0,"versions":4},"createdAt":1772906423324,"updatedAt":1778491768590},"latestVersion":{"version":"0.3.0","createdAt":1772984581967,"changelog":"**ARTA 0.3.0 — Now explicitly in-memory only, no bot tokens required**  \n\n- Clarifies that ARTA currently provides awareness only within a single agent process (in-memory); cross-process sharing not yet implemented\n- Removes bot token configuration and all credential references from documentation\n- Emphasizes ARTA's metadata-only approach (channel, user, session IDs)\n- Updates usage and configuration to reflect in-memory only limitation\n- Adds a section on security and privacy boundaries","license":null},"metadata":null,"owner":{"handle":"palxislabs","userId":"s17a4shxkmsdgdgevaj30rqq9983j86a","displayName":"palxislabs","image":"https://avatars.githubusercontent.com/u/258656192?v=4"},"moderation":null}