An AI agent runtime and gateway for autonomous task automation, with support for multiple communication channels (Telegram, Discord, Slack, Email, etc.) and policy-driven execution
Memcode has 36 tools with significant structural gaps. Most tools lack proper input schemas (many show only parameter names without type definitions in visible code). Descriptions are present but often generic (10-50 chars). No evidence of output schemas documented. Tools are not verb-prefixed consistently (gw_* prefix dominates, obscuring action intent). Parameter descriptions exist but lack constraints, ranges, or format specifications. Error handling is minimal, no recovery guidance visible. Security concerns: admin tools accept free-form strings for sensitive operations (channel names, agent names, policy documents) without validation hints. Composition issues: gw_agent combines 9+ responsibilities (model, reasoning, browser, objective, toolsets, autonomous, paused) in one tool. No pagination support visible despite tools returning lists. Overall, this reads as an internal admin interface rather than a production-grade agent toolkit.
Request input or clarification from the user
Execute shell commands (read-only inspect shell in review mode)
Click elements in the browser
Evaluate JavaScript in the browser
Navigate browser to a URL
Take a screenshot of the current browser view
Extract text content from the browser
Type text into browser input fields
Exit and cancel the current plan
gw_agent combines 9+ responsibilities (model, reasoning, browser, objective, toolsets, autonomous, paused) in a single tool. Should split into separate tools: set_agent_model, set_agent_reasoning, enable_agent_browser, set_agent_objective, configure_agent_toolsets, set_agent_autonomous, pause_agent.
36 tools lack documented output schemas. LLMs cannot plan downstream calls or extract required fields (e.g., agent_id, channel_id) without knowing response structure. Every tool must document what it returns.
gw_* tools accept free-form strings for sensitive operations (channel names, agent names, policy documents) without validation constraints. No enums, patterns, or format specs. LLMs will hallucinate invalid values. Add enums for channel (telegram|discord|slack|...), action (add|remove|enable|...), and validation rules for documents.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Query code structure and semantics
Edit or create files in the repository
Enter plan mode to structure multi-step task execution
Spawn parallel verification or research explorers
Fetch content from URLs
Show git diff for files or commits
Create, configure, and manage autonomous agents including model selection, reasoning level, toolsets, and autonomy settings
Provide answers to pending questions or requests for an agent
Manage gateway-wide browser capabilities and configuration
Configure channel settings including allow_from list, agent binding, pairing mode, voice replies, polling, and project associations
Diagnose and troubleshoot agent issues
Grant or revoke permissions for agents to access resources
View pending messages and requests for an agent
View agent execution journal and history
Display the current gateway configuration including enabled channels, projects, agents, schedules, and pending pairings
Manage channel pairing codes for user authentication and authorization
Manage per-agent policy documents and constraints
Register, enable, disable, or remove projects from the gateway configuration
Create, update, or remove scheduled tasks with cron or interval-based triggers
Control gateway service operations (start, stop, restart, status)
Wake or activate a paused agent
List directory contents
View, set, or unset policy constraints and settings across operation, session, workspace, or user scope
Read file contents from the repository
Search repository contents using ripgrep
Create, customize, or revise automated tasks with validation, approval workflow, and execution control
Search the web for information
Tool names do not follow verb_noun convention. 'gw_overview', 'gw_channel', 'gw_agent' are nouns, not actions. Rename to: get_gateway_overview, configure_channel, manage_agent, create_schedule, etc. LLMs infer intent from verb-first names.
No error handling guidance visible. Tools do not indicate which errors are retryable, user-fixable, or fatal. No recovery suggestions (e.g., 'Agent not found. Try list_agents() first'). Add error classification and actionable recovery hints.