Two Agents share One Skills
While your logic is spot-on—and that method will technically put the files in the right place—doing it manually via VSCode terminal is not the best or safest way.
Here is why your manual method has some hidden risks, followed by the much better, fully automated "Docker way" to achieve this exact goal.
The Risks of the Manual VSCode Method
- No Hot-Reloading: If you simply drop a new skill file into a running container, the Hermes Agent might not recognize it instantly. Frameworks usually load available tools into the AI's system prompt when the agent boots up. You would likely still have to restart the containers for the new skills to register.
- Naming Conflicts: If Agent A and Agent B both create a skill named data_parser.py but with completely different code, manually merging them will overwrite one of the files and destroy that agent's learned skill.
- Database Desync: Many AI agents don't just save a .py or .json file; they also log the skill's description into their internal SQLite database or vector memory so the LLM knows how to use it. Moving just the files might leave the database blind to the new skill.
- Tedious: You shouldn't have to manually act as the middleman to copy-paste files every time they learn something.
The Better Way: A Shared Docker Volume (Automated)
Since you are using Docker/OrbStack, you can force both agents to read and write from the exact same folder on your Mac simultaneously. You won't ever have to copy files again; when one agent creates a skill, it instantly exists in the other agent's folder.
To do this, you just mount a specific shared host folder to the /skills directory of both containers.
Step 1: Create a shared folder on your Mac
mkdir -p /workspace/shared_skills
Step 2: Update your Docker run commands
When you launch the agents, map that shared folder specifically to the skills directory inside the container.
Agent 1:
docker run -d \ --name hermes_agent_1 \ -v ~/.hermes_1_data:/opt/data \ -v /workspace/shared_skills:/opt/data/skills \ nousresearch/hermes-agent
Agent 2:
docker run -d \ --name hermes_agent_2 \ -v ~/.hermes_2_data:/opt/data \ -v /workspace/shared_skills:/opt/data/skills \ nousresearch/hermes-agent
⚠️ CRITICAL WARNING: Notice how they have separate folders for their main /opt/data (which holds their memories and SQLite databases), but they share the /opt/data/skills folder. Never make two active agents share the exact same SQLite database file, or they will corrupt it with concurrent writes.
How to handle "Instantaneous" Growth
Even with a shared folder, if Agent 1 writes a new skill, Agent 2's active memory might not immediately know it's there.
To solve this, whenever you know one agent has created a great skill and you want the other to use it immediately, you can simply:
- Tell Agent 2 to check its skills folder: Send a prompt like "Scan your skills directory and familiarize yourself with any new tools."
- Or, do a quick restart: Running docker restart hermes_agent_2 takes about 2 seconds in OrbStack and forces the agent to rebuild its tool list from the shared folder, perfectly syncing their capabilities.
What about conflicts?
To prevent both agents from naming skills the same thing, you should update their System Prompts (SOUL.md).
- Tell Agent 1: "When creating new skills, always prefix the filename with ag1_ (e.g., ag1_web_scraper.py)."
- Tell Agent 2: "When creating new skills, always prefix the filename with ag2_."
This ensures they can safely dump their newly learned skills into the shared pool without ever overwriting each other's work!