diff --git a/README.md b/README.md index a4cf55b..5517678 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,13 @@ PyPI version License: MIT Email + Python Version + Tests + Tutorial + Documentation + Examples + Discord + Twitter

@@ -17,68 +24,93 @@

--- -**ISEK** is a decentralized agent network framework for building intelligent, collaborative agent-to-agent (A2A) systems. The Isek network integrates the Google **A2A** protocol and **ERC-8004** contracts to enable identity registration, reputation building, and cooperative task-solving. Together, these elements form a self-organizing, decentralized society of agents. -> πŸ§ͺ **ISEK is under active development.** Contributions, feedback, and experiments are highly welcome. +**ISEK** is a decentralized framework designed for building **AI Agent Network**. Instead of treating agents as isolated executors, it provides the missing layer of collaboration and coordination. Developers run their agents locally, and through peer-to-peer connections, these agents join the ISEK network. Once connected, they can discover other agents, form communities, and deliver services directly to users. ---- - -## What problem ISEK solve? - -Our platform allows agent developers to run their agents locally. Through peer-to-peer connections, these agents join the ISEK network and can deliver services directly to users. -While most frameworks treat agents as isolated agent executors, **ISEK** focuses on the missing layer: **decentralized agent collaboration and coordination**. We believe the future of intelligent systems lies in **self-organizing agent networks** capable of context sharing, team formation, and collective reasoning β€” all without central control. -> ISEK is not just about running agents β€” it's about empowering them to **find each other, reason together, and act as a decentralized system.** - -## Why ERC-8004 matters? - -ERC-8004 provides a decentralized framework for identity, reputation, and validation registries, establishing the foundation for trustless verification and reputation management. ---- - -## 🌟 Features - -- **🧠 Decentralized Cooperation - Using the ERC-8004 trustless Agent Contract as our registry, we provide decentralized identity, reputation, and validation services. Agents can discover peers and collaborate directly β€” with no single point of failure. +At the core of the network, Google’s A2A protocol and ERC-8004 smart contracts enable identity registration, reputation building, and cooperative task-solving. This transforms agents from standalone tools into participants in a shared ecosystem. +We believe in self-organizing agent networks β€” systems that can share context, form teams, and reason collectively without central control. -- **🌐 Distributed Deployment - Agent owners can run their agents 100% locally, mint an Agent NFT, and use an agent wallet to claim full ownership and control. +Visit our website at [isek.xyz](https://www.isek.xyz/) for more details. -- **πŸ”Œ MCP-Based Agent Discovery - Our map server connects to the agent discovery service, making it easy for users to find agents. Configure the MCP service once, and you can access agents directly through your favorite AI chatbot. +## 🌟 Star Us on GitHub and Get Exclusive Reward! +Star ISEK to get notified about upcoming features, workshops and join our growing community for exploring the future of AI collaboration. -- **πŸ’» Developer-Friendly CLI - A streamlined CLI makes agent setup, deployment, and management fast and hassle-free. +hippo --- ## πŸš€ Quick Start -```bash -python3 -m venv isek_env && source isek_env/bin/activate -``` +### Prerequisites +- **Python 3.10+** +- **Node.js 18+** (for P2P functionality) ### Installation ```bash +python3 -m venv isek_env && source isek_env/bin/activate pip install isek isek setup ``` -### Prerequisites -- **Python 3.10+** -- **Node.js 18+** (for P2P functionality) +### Hosting your Agent: +```python +node = Node(host="127.0.0.1", port=9999, node_id="openai-agent") +app = Node.create_server(your_agent_executor, agent_card) +node.build_server(app, name="OpenAI Agent", daemon=False) +``` -> πŸ’‘ **Tip:** The `isek setup` command automatically handles both Python and JavaScript dependencies. +### Query your Agent: +```python +node = Node(host="127.0.0.1", port=8888, node_id="a2a-client") +message_content = await node.send_message("http://localhost:9999", query) +``` +### P2P Relay setup +```bash +isek run-realy +``` +Expected output: +Relay peer started. peerId= +Copy you peerID, this is your Agent network ID -### Set Up Environment -Create a `.env` file: +### P2P Hosting your Agent: +```python +p2p = A2AProtocolV2( + host="127.0.0.1", + port=9999, + p2p_enabled=True, + p2p_server_port=9001, + relay_ip=, + relay_peer_id= +) +p2p.start_p2p_server(wait_until_ready=True) +``` -```env -OPENAI_MODEL_NAME=gpt-4o-mini -OPENAI_BASE_URL=https://api.openai.com/v1 -OPENAI_API_KEY=your_api_key +Expected output: +| [p2p] server | peer_id= +Copy you peerID, this is your Agent server ID + +### P2P Query your Agent: + +```python +p2p = A2AProtocolV2( + host="127.0.0.1", + port=8888, + p2p_enabled=True, + p2p_server_port=9002, + relay_ip=, + relay_peer_id= +) +p2p.start_p2p_server(wait_until_ready=True) + +resp = p2p.send_message( + sender_node_id="a2a-client", + receiver_peer_id=, + message=query, +) ``` -### Wallet & Identity +### Wallet & Identity (optional) ISEK now uses a simple local wallet manager and an ERC-8004 identity flow. @@ -123,28 +155,12 @@ Notes: - If the agent is already registered, it returns the existing `agent_id` without sending a transaction. -### Launch Agent - -```python -from isek.agent.isek_agent import IsekAgent -from isek.models.openai import OpenAIModel -import dotenv -dotenv.load_dotenv() - -agent = IsekAgent( - name="My Agent", - model=OpenAIModel(model_id="gpt-4o-mini"), - description="A helpful assistant", - instructions=["Be polite", "Provide accurate information"], - success_criteria="User gets a helpful response" -) - -response = agent.run("hello") -``` - ### Try Examples -In the examples folder, follow the examples from level 1 to level 10, and you should have a good understanding of ISEK +[A2A Agent Server](https://www.isek.xyz/) +[A2A Agent Client](https://www.isek.xyz/) +[P2P Agent Server](https://www.isek.xyz/) +[A2A Agent Client](https://www.isek.xyz/) --- @@ -152,37 +168,10 @@ In the examples folder, follow the examples from level 1 to level 10, and you sh ```bash isek setup # Install Python and JavaScript dependencies +isek run_relay # Start the relay isek clean # Clean temporary files isek --help # View available commands ``` - ---- - -## 🧱 Project Structure - -``` -isek/ -β”œβ”€β”€ examples # Sample scripts demonstrating Isek usage -β”œβ”€β”€ isek # Core functionality and modules -β”‚ β”œβ”€β”€ agent # Agent logic and behavior -β”‚ β”œβ”€β”€ node # Node orchestration -β”‚ β”œβ”€β”€ protocol # Inter-Agent communication Protocol Layer -β”‚ β”œβ”€β”€ memory # Agent state and context -β”‚ β”œβ”€β”€ models # LLM backends and interfaces -β”‚ β”œβ”€β”€ team # Multi-Agent Organization Interface -β”‚ β”œβ”€β”€ tools # The toolkit library for Agents -β”‚ β”œβ”€β”€ utils # Utility functions -β”‚ β”œβ”€β”€ cli.py # CLI entry point -β”‚ └── isek_center.py # Local registry and coordinator -β”œβ”€β”€ docs/ # Documentation -└── README.md # Project overview and documentation -``` ---- - -## 🌟 Star Us πŸ˜‰ - -hippo - --- ## 🀝 Contributing @@ -195,18 +184,6 @@ We welcome collaborators, researchers, and early adopters! --- -## πŸ“œ License - -Licensed under the [MIT License](LICENSE). - ---- -## ⚠️ Legal Notice - -ISEK is an open-source, permissionless framework for building decentralized agent coordination systems. -The contributors do not operate, control, or monitor any deployed agents or their behavior. -By using this project, you accept full responsibility for your actions. See [LEGAL.md](./LEGAL.md) for more details. - ----

Made with ❀️ by the Isek Team
Autonomy is not isolation. It's cooperation, at scale. diff --git a/examples/Agent_servers/Pydantic/openai_agent_a2a_p2p.py b/examples/Agent_servers/Pydantic/openai_agent_a2a_p2p.py index 928193b..84f25ad 100644 --- a/examples/Agent_servers/Pydantic/openai_agent_a2a_p2p.py +++ b/examples/Agent_servers/Pydantic/openai_agent_a2a_p2p.py @@ -58,7 +58,7 @@ def main(): p2p_enabled=True, p2p_server_port=9001, relay_ip="155.138.145.190", - relay_peer_id="12D3KooWShd5s1ziziZNkiqN56XVpWH3chZHeq7EeSzHKMzR12vf" + relay_peer_id="12D3KooWAom1Up6ZmpWgCSZGU5miehN5j2fczRNaiPUU4ZqmSCJq" ) # Run blocking wait so we can print the peer address before starting the agent server p2p.start_p2p_server(wait_until_ready=True) diff --git a/isek/cli.py b/isek/cli.py index 4a94f8d..f109658 100644 --- a/isek/cli.py +++ b/isek/cli.py @@ -60,14 +60,6 @@ def clean(): click.secho("βœ“ Cleanup completed", fg="green") -@cli.command() -def registry(): - """Start local development registry""" - from isek.isek_center import main - - main() - - @cli.command() def setup(): """Install ISEK Python and JavaScript dependencies""" @@ -144,7 +136,16 @@ def is_development_environment(): click.secho(" P2P functionality may not work correctly", fg="yellow") click.secho("πŸŽ‰ ISEK setup completed successfully!", fg="green") - click.secho(" You can now run examples with 'isek example run '", fg="blue") + click.secho(" You can now run relay with 'isek run_relay'", fg="blue") + + +@cli.command() +def run_relay(): + """Run relay""" + subprocess.run( + ["node", "isek/protocol/p2p/relay.js"], check=True, capture_output=True + ) + click.secho("βœ“ Relay started", fg="green") @cli.group()