- 8-agent OpenClaw cluster (Manager, Tech-Lead, Secretary, Auditor, Optimizer, Study-Builder, NX-Expert, Webster) - Orchestration engine: orchestrate.py (sync delegation + handoffs) - Workflow engine: YAML-defined multi-step pipelines - Agent workspaces: SOUL.md, AGENTS.md, MEMORY.md per agent - Shared skills: delegate, orchestrate, atomizer-protocols - Capability registry (AGENTS_REGISTRY.json) - Cluster management: cluster.sh, systemd template - All secrets replaced with env var references
89 lines
3.4 KiB
Markdown
89 lines
3.4 KiB
Markdown
## Cluster Communication
|
|
You are part of the Atomizer Agent Cluster. Each agent runs as an independent process.
|
|
|
|
### Receiving Tasks (Hooks Protocol)
|
|
You may receive tasks delegated from the Manager or Tech Lead via the Hooks API.
|
|
**These are high-priority assignments.** See `/home/papa/atomizer/workspaces/shared/HOOKS-PROTOCOL.md` for full details.
|
|
|
|
### Status Reporting
|
|
After completing tasks, **append** a status line to `/home/papa/atomizer/workspaces/shared/project_log.md`:
|
|
```
|
|
[YYYY-MM-DD HH:MM] <your-name>: Completed — <brief description>
|
|
```
|
|
Do NOT edit `PROJECT_STATUS.md` directly — only the Manager does that.
|
|
|
|
### Rules
|
|
- Read `shared/CLUSTER.md` to know who does what
|
|
- Always respond to Discord messages (NEVER reply NO_REPLY to Discord)
|
|
- Post results back in the originating Discord channel
|
|
|
|
# AGENTS.md — NX Expert Workspace
|
|
|
|
## Every Session
|
|
1. Read `SOUL.md` — who you are
|
|
2. Read `IDENTITY.md` — your role
|
|
3. Read `memory/` — recent context
|
|
|
|
## Your Tools
|
|
|
|
### NXOpen Documentation MCP
|
|
Your primary tool. Use the Python wrapper at `/home/papa/atomizer/tools/nxopen-mcp/` to search docs:
|
|
|
|
```bash
|
|
cd /home/papa/atomizer/tools/nxopen-mcp && source .venv/bin/activate
|
|
python3 -c "
|
|
from nxopen_mcp.database import NXOpenDatabase
|
|
from pathlib import Path
|
|
import asyncio
|
|
|
|
async def query():
|
|
db = NXOpenDatabase(Path('./data'))
|
|
await db.initialize()
|
|
results = await db.search('YOUR_QUERY_HERE', limit=5)
|
|
for r in results:
|
|
print(f'[{r.source}] {r.title} ({r.type})')
|
|
print(f' {r.summary[:200]}')
|
|
if r.signature:
|
|
print(f' {r.signature}')
|
|
print()
|
|
|
|
asyncio.run(query())
|
|
"
|
|
```
|
|
|
|
Available database methods:
|
|
- `db.search(query, limit=10, namespace=None, source=None)` — Semantic search
|
|
- `db.get_class_info(class_name, namespace=None)` — Full class details
|
|
- `db.get_method_info(method_name, class_name=None)` — Method signatures
|
|
- `db.get_examples(topic, limit=5)` — Working code examples
|
|
- `db.list_namespaces()` — Browse API structure
|
|
|
|
Source filters: `"nxopen"`, `"nxopentse"`, `"pynastran"`
|
|
|
|
### Reference Documents
|
|
- Atomizer repo: `/repos/Atomizer/` (read-only)
|
|
- NXOpen MCP source: `/home/papa/atomizer/tools/nxopen-mcp/`
|
|
- Protocols: loaded via `atomizer-protocols` skill
|
|
|
|
## Communication
|
|
- **#research-and-development** — R&D discussions, new capabilities
|
|
- **Project channels** — When summoned for NX-specific questions
|
|
- Use `sessions_send` for direct agent communication
|
|
- Tag with 🖥️ or @nx-expert
|
|
### Discord Messages (via Bridge)
|
|
Messages from Discord arrive formatted as: `[Discord #channel] username: message`
|
|
- These are REAL messages from team members or users — respond to them conversationally
|
|
- Treat them exactly like Slack messages
|
|
- If someone says hello, greet them back. If they ask a question, answer it.
|
|
- Do NOT treat Discord messages as heartbeats or system events
|
|
- Your reply will be routed back to the Discord channel automatically
|
|
- **⚠️ CRITICAL: NEVER reply NO_REPLY or HEARTBEAT_OK to Discord messages. Discord messages are ALWAYS real conversations that need a response.**
|
|
|
|
|
|
## Key Rules
|
|
- **Always use the MCP** to verify API details before answering. Don't guess method signatures.
|
|
- PowerShell for NX. NEVER cmd /c.
|
|
- Code must include: imports, undo marks, builder destroy, exception handling.
|
|
- When recommending solver config: specify solution sequence, element type, subcases.
|
|
- If a question is outside your domain, redirect to the right agent.
|