<p align="center">
<img src="./asset/zen-agent.png" width="260", height="240" />
</p>
---
# GenPilot
**GenPilot** streamlines the creation and management of multi-agent systems powered by Generative AI through an intuitive, user-friendly interface. It allows both developers and end-users to efficiently transform concepts and prototypes into fully realized solutions.
- **Boost Autonomy**

GenPilot differ from those in systems like [AutoGen](https://microsoft.github.io/autogen/0.2/). With built-in tools, they operate independently, eliminating the need to rely on other agents for information. This allows them to iterate on a task before delivering results or involving another agent, reducing unnecessary interactions and agents.
- **Tool Integration**
Unlike [LangChain](https://python.langchain.com/docs/how_to/custom_tools/) or [AutoGen](https://microsoft.github.io/autogen/0.2/docs/tutorial/tool-use/), which require following serval rules to register functions or tools, GenPilot allows you to simply write a function and add a comment. The agent will automatically use the tool to solve tasks. As shown in the example below, check out sample/agent_tool.py for a quick start.
```python
Agent(
model_client,
"Assistant AI", "You are an assistant to solve tasks",
tools=[wikipedia],
).run()
```
- **Governed Actions**

Actions performed by the GenPilot are regulated by developers with three permission levels:
- **`auto`**: Requests permission only for actions that modify the system or environment[PromptAgent]
- **`always`**: Requests permission for every action.
- **`none`**: Never requests permission.
- **Multi-Agent System**
Transitioning the gen-agent into a multi-agent system a straightforward process. The handoff workflow for orchestrating agents draws inspiration from the post [Routines and Handoffs](https://cookbook.openai.com/examples/orchestrating_agents#executing-routines), which details the functionality of the [Swarm](https://github.com/openai/swarm) project. We strive to achieve a harmonious balance, enabling you to create a single agent for specific tasks while effortlessly evolving towards a sophisticated multi-agent framework.
<details>
<summary>This demo provides advice on what to wear when traveling to a city</summary>
[](https://asciinema.org/a/686709)
</details>
<details>
<summary>This demo uses multi-agent troubleshooting for issues in RedHat ACM</summary>
#### Cluster Unknown
[](https://asciinema.org/a/687993)
#### Addons Aren't Created
[](https://asciinema.org/a/689439)
</details>
- **Memory** [PROCESSING]
Memory capabilities enhance accuracy and optimize thought processes by transitioning from stateless to stateful operations. Unlike Retrieval-Augmented Generation (RAG), which builds knowledge from external sources, our approach is based on the agent's own experiences.
Zen-Agent provides an interface called `ChatMemory` that allows you to customize memory for your assistant. We offer two default memory implementations:
1. `ChatBufferMemory` A short-term memory solution designed to retrieve the most recent message along with the current session context.
2. `ChatVectorMemory` A long-term memory implementation based on LlamaIndex [vector memory](https://docs.llamaindex.ai/en/stable/examples/agent/memory/vector_memory/).
> [MemGPT: Towards LLMs as Operating Systems](https://arxiv.org/pdf/2310.08560)
> [CLIN: A CONTINUALLY LEARNING LANGUAGE AGENT FOR RAPID TASK ADAPTATION AND GENERALIZATION](https://arxiv.org/pdf/2310.10134)
3. `ChatPgMemory` ...
- **RAG Support**
We also provide a retrieval agent capable of integrating local resources or knowledge into the multi-agent system. The default implementation is based on LlamaIndex's [ChatEngine](https://docs.llamaindex.ai/en/stable/examples/chat_engine/chat_engine_best/).
- **Typed Prompt and Auto Optimizer**
- https://github.com/stanfordnlp/dspy
- https://github.com/zou-group/textgrad
- **UI Support**
- https://github.com/streamlit/streamlit
Raw data
{
"_id": null,
"home_page": "https://github.com/yanmxa/chat-agent",
"name": "genpilot",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "agent, chat, terminal, UI",
"author": "myan",
"author_email": "myan@redhat.com",
"download_url": "https://files.pythonhosted.org/packages/54/b1/beeb1d7108c56ddfdb290b747c495a8a0ebbc187c1f041f3eaf3888cda6d/genpilot-0.0.2.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img src=\"./asset/zen-agent.png\" width=\"260\", height=\"240\" />\n</p>\n\n---\n\n# GenPilot\n\n**GenPilot** streamlines the creation and management of multi-agent systems powered by Generative AI through an intuitive, user-friendly interface. It allows both developers and end-users to efficiently transform concepts and prototypes into fully realized solutions.\n\n- **Boost Autonomy**\n\n \n GenPilot differ from those in systems like [AutoGen](https://microsoft.github.io/autogen/0.2/). With built-in tools, they operate independently, eliminating the need to rely on other agents for information. This allows them to iterate on a task before delivering results or involving another agent, reducing unnecessary interactions and agents.\n\n- **Tool Integration**\n\n Unlike [LangChain](https://python.langchain.com/docs/how_to/custom_tools/) or [AutoGen](https://microsoft.github.io/autogen/0.2/docs/tutorial/tool-use/), which require following serval rules to register functions or tools, GenPilot allows you to simply write a function and add a comment. The agent will automatically use the tool to solve tasks. As shown in the example below, check out sample/agent_tool.py for a quick start.\n\n ```python\n Agent(\n model_client,\n \"Assistant AI\", \"You are an assistant to solve tasks\",\n tools=[wikipedia],\n ).run()\n ```\n\n- **Governed Actions**\n\n \n Actions performed by the GenPilot are regulated by developers with three permission levels: \n - **`auto`**: Requests permission only for actions that modify the system or environment[PromptAgent]\n - **`always`**: Requests permission for every action. \n - **`none`**: Never requests permission. \n\n- **Multi-Agent System**\n\n Transitioning the gen-agent into a multi-agent system a straightforward process. The handoff workflow for orchestrating agents draws inspiration from the post [Routines and Handoffs](https://cookbook.openai.com/examples/orchestrating_agents#executing-routines), which details the functionality of the [Swarm](https://github.com/openai/swarm) project. We strive to achieve a harmonious balance, enabling you to create a single agent for specific tasks while effortlessly evolving towards a sophisticated multi-agent framework.\n\n\n<details>\n<summary>This demo provides advice on what to wear when traveling to a city</summary>\n\n[](https://asciinema.org/a/686709)\n\n</details>\n\n<details>\n\n<summary>This demo uses multi-agent troubleshooting for issues in RedHat ACM</summary>\n\n#### Cluster Unknown\n\n[](https://asciinema.org/a/687993)\n\n#### Addons Aren't Created\n\n[](https://asciinema.org/a/689439)\n\n</details>\n\n\n- **Memory** [PROCESSING] \n\n Memory capabilities enhance accuracy and optimize thought processes by transitioning from stateless to stateful operations. Unlike Retrieval-Augmented Generation (RAG), which builds knowledge from external sources, our approach is based on the agent's own experiences.\n\n Zen-Agent provides an interface called `ChatMemory` that allows you to customize memory for your assistant. We offer two default memory implementations:\n\n 1. `ChatBufferMemory` A short-term memory solution designed to retrieve the most recent message along with the current session context.\n\n 2. `ChatVectorMemory` A long-term memory implementation based on LlamaIndex [vector memory](https://docs.llamaindex.ai/en/stable/examples/agent/memory/vector_memory/).\n\n > [MemGPT: Towards LLMs as Operating Systems](https://arxiv.org/pdf/2310.08560)\n > [CLIN: A CONTINUALLY LEARNING LANGUAGE AGENT FOR RAPID TASK ADAPTATION AND GENERALIZATION](https://arxiv.org/pdf/2310.10134)\n\n 3. `ChatPgMemory` ...\n\n- **RAG Support**\n\nWe also provide a retrieval agent capable of integrating local resources or knowledge into the multi-agent system. The default implementation is based on LlamaIndex's [ChatEngine](https://docs.llamaindex.ai/en/stable/examples/chat_engine/chat_engine_best/).\n\n- **Typed Prompt and Auto Optimizer**\n\n - https://github.com/stanfordnlp/dspy\n - https://github.com/zou-group/textgrad\n\n- **UI Support**\n \n - https://github.com/streamlit/streamlit\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Facilitates the creation and management of multi-agent systems, offering a user-friendly interface for both developers and end-users to bring your ideas and prototypes to life.",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/yanmxa/chat-agent",
"Repository": "https://github.com/yanmxa/chat-agent"
},
"split_keywords": [
"agent",
" chat",
" terminal",
" ui"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "77ddd91d4ff9f04e3b931e0a1fe0e9e1c62dde09faccc187cf6d4cd59f4419cb",
"md5": "d1b2b8d49fc041764032696402e827ef",
"sha256": "26a88921b8e74ba76dd1bee65a74c5525d20420360f0e28d2248f5f0914c7eff"
},
"downloads": -1,
"filename": "genpilot-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d1b2b8d49fc041764032696402e827ef",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 13148,
"upload_time": "2025-02-21T17:10:25",
"upload_time_iso_8601": "2025-02-21T17:10:25.750088Z",
"url": "https://files.pythonhosted.org/packages/77/dd/d91d4ff9f04e3b931e0a1fe0e9e1c62dde09faccc187cf6d4cd59f4419cb/genpilot-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "54b1beeb1d7108c56ddfdb290b747c495a8a0ebbc187c1f041f3eaf3888cda6d",
"md5": "5ca48a79d0d4210e81ade7735b40046b",
"sha256": "41a5fd79e3d8ef5b245caa0ba28c82a22ab7d65ba2af30908d496f19b689818e"
},
"downloads": -1,
"filename": "genpilot-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "5ca48a79d0d4210e81ade7735b40046b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 11425,
"upload_time": "2025-02-21T17:10:27",
"upload_time_iso_8601": "2025-02-21T17:10:27.467299Z",
"url": "https://files.pythonhosted.org/packages/54/b1/beeb1d7108c56ddfdb290b747c495a8a0ebbc187c1f041f3eaf3888cda6d/genpilot-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-21 17:10:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yanmxa",
"github_project": "chat-agent",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "groq",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"13.9.2"
]
]
},
{
"name": "openai",
"specs": [
[
"==",
"1.52.2"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.9.2"
]
]
}
],
"lcname": "genpilot"
}