ai
3 мин
28 октября 2026 г.
Источник: Dev.to AI Feed

Give your LangChain, LlamaIndex, CrewAI, Google ADK, Hermes or OpenClaw agent a memory, one connection each

Semurg
Semurg
RSS AI Ingest
Give your LangChain, LlamaIndex, CrewAI, Google ADK, Hermes or OpenClaw agent a memory, one connection each

Most agent frameworks give an agent a chat history and call it memory. When the process ends, it is gone. When two agents work on the Semurg gives every agent the same long-term memory, on your own machine, over MCP. Each agent stores the p...

Most agent frameworks give an agent a chat history and call it memory. When the process ends, it is gone. When two agents work on the same project, they know nothing about each other. Semurg gives every agent the same long-term memory, on your own machine, over MCP. Each agent stores the people, decisions and documents it finds as a knowledge graph. Any agent on the same scope can later ask for them, and every answer cites where it came from. One node serves them all, so a CrewAI crew can read what your LangChain agent stored this morning. Start a node It runs on Linux (x86-64); the first node is free: curl -fsSL https://one.semurg.io/install | sudo bash export SEMURG_API_TOKEN="$(sudo grep '^SEMURG_API_TOKEN=' /etc/semurg/semurg.env | cut -d= -f2-)" Every snippet below reads the token from that variable and talks to http://127.0.0.1:4000/v1/mcp. LangChain / LangGraph pip install langchain-mcp-adapters import asyncio, os from langchain_mcp_adapters.client import MultiServerMCPClient HEADERS = {"Authorization": "Bearer " + os.environ["SEMURG_API_TOKEN"], "X-Semurg-Scope": "default"} FACTS = {"entities": [{"name": "Ada", "type": "person"}, {"name": "Acme", "type": "organisation"}], "relations": [{"source": "Ada", "target": "Acme", "type": "WORKS_AT"}]} async def main(): client = MultiServerMCPClient({"semurg": {"url": "http://127.0.0.1:4000/v1/mcp", "transport": "streamable_http", "headers": HEADERS}}) tools = {t.name: t for t in await client.get_tools()} await tools["memory_remember"].ainvoke({"facts": FACTS}) print(await tools["memory_recall"].ainvoke({"subject": "Ada"})) asyncio.run(main()) Bind the same tools into your LangGraph agent and it stores and recalls on its own. The blocks below are shortened and reuse HEADERS and FACTS from this one. The complete, runnable file for each is on https://one.semurg.io/agents. CrewAI pip install 'crewai-tools[mcp]' from crewai_tools import MCPServerAdapter params = {"url": "http://127.0.0.1:4000/v1/mcp", "transport": "streamable-http", "headers": HEADERS} with MCPServerAdapter(params, connect_timeout=60) as tools: by = {t.name: t for t in tools} by["memory_remember"].run(facts=FACTS) print(by["memory_recall"].run(subject="Ada")) LlamaIndex pip install llama-index-tools-mcp import asyncio from llama_index.tools.mcp import BasicMCPClient, McpToolSpec async def main(): client = BasicMCPClient("http://127.0.0.1:4000/v1/mcp", headers=HEADERS) by = {t.metadata.name: t for t in await McpToolSpec(client=client).to_tool_list_async()} await by["memory_remember"].acall(facts=FACTS) print(await by["memory_recall"].acall(subject="Ada")) asyncio.run(main()) Google ADK pip install google-adk 'mcp<2' from google.adk.tools.mcp_tool.mcp_toolset import McpToolset, StreamableHTTPConnectionParams toolset = McpToolset(connection_params=StreamableHTTPConnectionParams(url="http://127.0.0.1:4000/v1/mcp", headers=HEADERS)) Put toolset in your agent's tools. Hermes Agent and OpenClaw Hermes takes one entry under mcp_servers in ~/.hermes/config.yaml, with the token in ~/.hermes/.env. OpenClaw takes one command: openclaw mcp set semurg '{"url":"http://127.0.0.1:4000/v1/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer ${SEMURG_API_TOKEN}","X-Semurg-Scope":"default"}}' openclaw mcp doctor semurg --probe How we know these work We run every one of these against our published releases. The libraries run end to end: remember, recall, relate, recall again, forget, each answer read back. For Hermes, OpenClaw and Claude Code, the agent's own MCP client must list every memory tool the node serves. Each result, with the release and the package versions it ran on, is at https://one.semurg.io/agents. Full guides for Hermes and OpenClaw are on our blog: https://one.semurg.io/blog/semurg-memory-for-hermes-agent Drafted with an AI assistant (Claude); every snippet is taken from our published agents page (shortened here; the full files are there).

Хотите внедрить ИИ в ваш бренд?

Спроектируем и развернем автономных агентов и современный цифровой стек под ваши задачи.

Рассчитать проект