zipagent


Namezipagent JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
Summary轻量级的 AI Agent 框架
upload_time2025-08-13 02:40:15
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords agent ai assistant framework llm
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ZipAgent

[![PyPI version](https://badge.fury.io/py/zipagent.svg)](https://badge.fury.io/py/zipagent)
[![Python version](https://img.shields.io/pypi/pyversions/zipagent.svg)](https://pypi.org/project/zipagent/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Tests](https://github.com/JiayuXu0/LiteAgent/workflows/tests/badge.svg)](https://github.com/JiayuXu0/LiteAgent/actions)

> 🚀 轻量级的 AI Agent 框架,让 AI 工具集成变得简单高效

ZipAgent 是一个现代化的 Python AI Agent 框架,专注于简洁、高效和易扩展。无论是构建聊天机器人、智能助手还是复杂的 AI 工作流,ZipAgent 都能让你快速上手。

## ✨ 核心特性

- **🎯 简洁 API**: 极简设计,几行代码构建 AI Agent
- **🔧 工具系统**: 强大的 `@function_tool` 装饰器,轻松扩展 AI 能力
- **🌊 流式输出**: 完整的流式处理支持,提供实时交互体验
- **📝 上下文管理**: 自动管理对话历史和上下文状态
- **🔗 MCP 集成**: 原生支持 Model Context Protocol,集成外部工具
- **⚡ 现代化**: 基于 Python 3.10+,支持异步编程
- **🧪 高质量**: 120+ 测试用例,78% 代码覆盖率

## 🚀 快速开始

### 安装

```bash
pip install zipagent
```

### 5分钟上手

```python
from zipagent import Agent, Runner, function_tool

# 1. 定义工具
@function_tool
def calculate(expression: str) -> str:
    """计算数学表达式"""
    return str(eval(expression))

# 2. 创建 Agent
agent = Agent(
    name="MathAssistant",
    instructions="你是一个数学助手",
    tools=[calculate]
)

# 3. 开始对话
result = Runner.run(agent, "计算 23 + 45")
print(result.content)  # "23 + 45 的计算结果是 68"
```

## 📚 功能展示

### 🌊 流式输出

```python
from zipagent import StreamEventType

# 实时流式响应
for event in Runner.run_stream(agent, "解释什么是人工智能"):
    if event.type == StreamEventType.ANSWER_DELTA:
        print(event.content, end="", flush=True)  # 打字机效果
    elif event.type == StreamEventType.TOOL_CALL:
        print(f"🔧 调用工具: {event.tool_name}")
```

### 📝 上下文管理

```python
from zipagent import Context

# 多轮对话
context = Context()

result1 = Runner.run(agent, "我叫小明", context=context)
result2 = Runner.run(agent, "我叫什么名字?", context=context)
print(result2.content)  # "你叫小明"

# 对话统计
print(f"对话轮数: {context.turn_count}")
print(f"Token 使用: {context.usage}")
```

### 🔗 MCP 工具集成

```python
from zipagent import MCPTool

# 连接外部 MCP 工具
async def demo():
    # 连接高德地图工具
    amap_tools = await MCPTool.connect(
        command="npx",
        args=["-y", "@amap/amap-maps-mcp-server"],
        env={"AMAP_MAPS_API_KEY": "your_key"}
    )
    
    # 混合使用本地工具和 MCP 工具
    agent = Agent(
        name="MapAssistant",
        instructions="你是一个地图助手",
        tools=[calculate, amap_tools]  # 统一接口!
    )
    
    result = Runner.run(agent, "北京今天天气怎么样?")
    print(result.content)
```

## 🔧 高级功能

### 异常处理

```python
from zipagent import ToolExecutionError, MaxTurnsError

try:
    result = Runner.run(agent, "计算 10 / 0", max_turns=3)
except ToolExecutionError as e:
    print(f"工具执行失败: {e.details['tool_name']}")
except MaxTurnsError as e:
    print(f"达到最大轮次: {e.details['max_turns']}")
```

### 自定义模型

```python
from zipagent import OpenAIModel

# 自定义模型配置
model = OpenAIModel(
    model="gpt-4",
    api_key="your_api_key",
    base_url="https://api.openai.com/v1"
)

agent = Agent(
    name="CustomAgent",
    instructions="你是一个助手",
    tools=[calculate],
    model=model
)
```

## 🎯 使用场景

- **💬 聊天机器人**: 客服、问答、闲聊机器人
- **🔧 智能助手**: 代码助手、写作助手、数据分析助手  
- **🌐 工具集成**: 集成 API、数据库、第三方服务
- **📊 工作流自动化**: 复杂的多步骤任务自动化
- **🔍 知识问答**: 基于知识库的智能问答系统

## 📖 完整示例

查看 `examples/` 目录获取更多示例:

- [`basic_demo.py`](examples/basic_demo.py) - 基础功能演示
- [`stream_demo.py`](examples/stream_demo.py) - 流式输出演示
- [`mcp_demo.py`](examples/mcp_demo.py) - MCP 工具集成演示

```bash
# 运行示例
python examples/basic_demo.py
python examples/stream_demo.py
python examples/mcp_demo.py
```

## 🏗️ 项目架构

```
ZipAgent/
├── src/zipagent/           # 核心框架
│   ├── agent.py            # Agent 核心类
│   ├── context.py          # 上下文管理
│   ├── model.py            # LLM 模型抽象
│   ├── runner.py           # 执行引擎
│   ├── tool.py             # 工具系统
│   ├── stream.py           # 流式处理
│   ├── mcp_tool.py         # MCP 工具集成
│   └── exceptions.py       # 异常系统
├── examples/               # 使用示例
├── tests/                  # 测试套件(120+ 测试)
└── docs/                   # 文档
```

## 📦 依赖

**核心依赖**:
- `openai` - OpenAI API 客户端
- `pydantic` - 数据验证

**可选依赖**:
- `mcp` - MCP 工具支持
- `nest-asyncio` - 嵌套异步支持
- `python-dotenv` - 环境变量管理

## 🛠️ 开发

### 本地开发环境

```bash
# 克隆项目
git clone https://github.com/JiayuXu0/LiteAgent.git
cd LiteAgent

# 使用 uv 管理依赖(推荐)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# 运行测试
uv run pytest

# 代码检查
uv run ruff check --fix
uv run pyright
```

### 贡献指南

我们欢迎各种形式的贡献!

1. 🐛 **报告 Bug**: 提交 [Issue](https://github.com/JiayuXu0/LiteAgent/issues)
2. 💡 **功能建议**: 讨论新功能想法
3. 📝 **文档改进**: 完善文档和示例
4. 🔧 **代码贡献**: 提交 Pull Request

### 开发规范

- 使用 `ruff` 进行代码格式化和检查
- 使用 `pyright` 进行类型检查
- 编写测试用例,保持高覆盖率
- 遵循语义化版本规范

## 📊 性能

- ⚡ **启动速度**: 毫秒级初始化
- 🔄 **并发能力**: 支持异步并发处理
- 💾 **内存占用**: 轻量级设计,低内存占用
- 📦 **包大小**: Wheel 包仅 ~15KB

## 🗺️ 路线图

- [ ] **多模型支持**: Claude、Gemini、本地模型
- [ ] **插件系统**: 更丰富的扩展机制
- [ ] **可视化界面**: Web UI 和监控面板
- [ ] **分布式支持**: 多实例协作
- [ ] **性能优化**: 缓存和批处理优化

## 📄 许可证

MIT License - 详见 [LICENSE](LICENSE) 文件

## 🤝 致谢

感谢所有贡献者和社区支持!

- OpenAI - 提供强大的 LLM API
- MCP 社区 - Model Context Protocol 标准
- Python 生态 - 优秀的开发工具链

---

⭐ 如果这个项目对你有帮助,请给我们一个 Star!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "zipagent",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Jiayu Xu <420249001@qq.com>",
    "keywords": "agent, ai, assistant, framework, llm",
    "author": null,
    "author_email": "Jiayu Xu <420249001@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/36/4d/e62ce852c24adff66077dc17f20963dba9d1ca8595e868853efdf32084e1/zipagent-0.1.1.tar.gz",
    "platform": null,
    "description": "# ZipAgent\n\n[![PyPI version](https://badge.fury.io/py/zipagent.svg)](https://badge.fury.io/py/zipagent)\n[![Python version](https://img.shields.io/pypi/pyversions/zipagent.svg)](https://pypi.org/project/zipagent/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Tests](https://github.com/JiayuXu0/LiteAgent/workflows/tests/badge.svg)](https://github.com/JiayuXu0/LiteAgent/actions)\n\n> \ud83d\ude80 \u8f7b\u91cf\u7ea7\u7684 AI Agent \u6846\u67b6\uff0c\u8ba9 AI \u5de5\u5177\u96c6\u6210\u53d8\u5f97\u7b80\u5355\u9ad8\u6548\n\nZipAgent \u662f\u4e00\u4e2a\u73b0\u4ee3\u5316\u7684 Python AI Agent \u6846\u67b6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u6d01\u3001\u9ad8\u6548\u548c\u6613\u6269\u5c55\u3002\u65e0\u8bba\u662f\u6784\u5efa\u804a\u5929\u673a\u5668\u4eba\u3001\u667a\u80fd\u52a9\u624b\u8fd8\u662f\u590d\u6742\u7684 AI \u5de5\u4f5c\u6d41\uff0cZipAgent \u90fd\u80fd\u8ba9\u4f60\u5feb\u901f\u4e0a\u624b\u3002\n\n## \u2728 \u6838\u5fc3\u7279\u6027\n\n- **\ud83c\udfaf \u7b80\u6d01 API**: \u6781\u7b80\u8bbe\u8ba1\uff0c\u51e0\u884c\u4ee3\u7801\u6784\u5efa AI Agent\n- **\ud83d\udd27 \u5de5\u5177\u7cfb\u7edf**: \u5f3a\u5927\u7684 `@function_tool` \u88c5\u9970\u5668\uff0c\u8f7b\u677e\u6269\u5c55 AI \u80fd\u529b\n- **\ud83c\udf0a \u6d41\u5f0f\u8f93\u51fa**: \u5b8c\u6574\u7684\u6d41\u5f0f\u5904\u7406\u652f\u6301\uff0c\u63d0\u4f9b\u5b9e\u65f6\u4ea4\u4e92\u4f53\u9a8c\n- **\ud83d\udcdd \u4e0a\u4e0b\u6587\u7ba1\u7406**: \u81ea\u52a8\u7ba1\u7406\u5bf9\u8bdd\u5386\u53f2\u548c\u4e0a\u4e0b\u6587\u72b6\u6001\n- **\ud83d\udd17 MCP \u96c6\u6210**: \u539f\u751f\u652f\u6301 Model Context Protocol\uff0c\u96c6\u6210\u5916\u90e8\u5de5\u5177\n- **\u26a1 \u73b0\u4ee3\u5316**: \u57fa\u4e8e Python 3.10+\uff0c\u652f\u6301\u5f02\u6b65\u7f16\u7a0b\n- **\ud83e\uddea \u9ad8\u8d28\u91cf**: 120+ \u6d4b\u8bd5\u7528\u4f8b\uff0c78% \u4ee3\u7801\u8986\u76d6\u7387\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u5b89\u88c5\n\n```bash\npip install zipagent\n```\n\n### 5\u5206\u949f\u4e0a\u624b\n\n```python\nfrom zipagent import Agent, Runner, function_tool\n\n# 1. \u5b9a\u4e49\u5de5\u5177\n@function_tool\ndef calculate(expression: str) -> str:\n    \"\"\"\u8ba1\u7b97\u6570\u5b66\u8868\u8fbe\u5f0f\"\"\"\n    return str(eval(expression))\n\n# 2. \u521b\u5efa Agent\nagent = Agent(\n    name=\"MathAssistant\",\n    instructions=\"\u4f60\u662f\u4e00\u4e2a\u6570\u5b66\u52a9\u624b\",\n    tools=[calculate]\n)\n\n# 3. \u5f00\u59cb\u5bf9\u8bdd\nresult = Runner.run(agent, \"\u8ba1\u7b97 23 + 45\")\nprint(result.content)  # \"23 + 45 \u7684\u8ba1\u7b97\u7ed3\u679c\u662f 68\"\n```\n\n## \ud83d\udcda \u529f\u80fd\u5c55\u793a\n\n### \ud83c\udf0a \u6d41\u5f0f\u8f93\u51fa\n\n```python\nfrom zipagent import StreamEventType\n\n# \u5b9e\u65f6\u6d41\u5f0f\u54cd\u5e94\nfor event in Runner.run_stream(agent, \"\u89e3\u91ca\u4ec0\u4e48\u662f\u4eba\u5de5\u667a\u80fd\"):\n    if event.type == StreamEventType.ANSWER_DELTA:\n        print(event.content, end=\"\", flush=True)  # \u6253\u5b57\u673a\u6548\u679c\n    elif event.type == StreamEventType.TOOL_CALL:\n        print(f\"\ud83d\udd27 \u8c03\u7528\u5de5\u5177: {event.tool_name}\")\n```\n\n### \ud83d\udcdd \u4e0a\u4e0b\u6587\u7ba1\u7406\n\n```python\nfrom zipagent import Context\n\n# \u591a\u8f6e\u5bf9\u8bdd\ncontext = Context()\n\nresult1 = Runner.run(agent, \"\u6211\u53eb\u5c0f\u660e\", context=context)\nresult2 = Runner.run(agent, \"\u6211\u53eb\u4ec0\u4e48\u540d\u5b57\uff1f\", context=context)\nprint(result2.content)  # \"\u4f60\u53eb\u5c0f\u660e\"\n\n# \u5bf9\u8bdd\u7edf\u8ba1\nprint(f\"\u5bf9\u8bdd\u8f6e\u6570: {context.turn_count}\")\nprint(f\"Token \u4f7f\u7528: {context.usage}\")\n```\n\n### \ud83d\udd17 MCP \u5de5\u5177\u96c6\u6210\n\n```python\nfrom zipagent import MCPTool\n\n# \u8fde\u63a5\u5916\u90e8 MCP \u5de5\u5177\nasync def demo():\n    # \u8fde\u63a5\u9ad8\u5fb7\u5730\u56fe\u5de5\u5177\n    amap_tools = await MCPTool.connect(\n        command=\"npx\",\n        args=[\"-y\", \"@amap/amap-maps-mcp-server\"],\n        env={\"AMAP_MAPS_API_KEY\": \"your_key\"}\n    )\n    \n    # \u6df7\u5408\u4f7f\u7528\u672c\u5730\u5de5\u5177\u548c MCP \u5de5\u5177\n    agent = Agent(\n        name=\"MapAssistant\",\n        instructions=\"\u4f60\u662f\u4e00\u4e2a\u5730\u56fe\u52a9\u624b\",\n        tools=[calculate, amap_tools]  # \u7edf\u4e00\u63a5\u53e3\uff01\n    )\n    \n    result = Runner.run(agent, \"\u5317\u4eac\u4eca\u5929\u5929\u6c14\u600e\u4e48\u6837\uff1f\")\n    print(result.content)\n```\n\n## \ud83d\udd27 \u9ad8\u7ea7\u529f\u80fd\n\n### \u5f02\u5e38\u5904\u7406\n\n```python\nfrom zipagent import ToolExecutionError, MaxTurnsError\n\ntry:\n    result = Runner.run(agent, \"\u8ba1\u7b97 10 / 0\", max_turns=3)\nexcept ToolExecutionError as e:\n    print(f\"\u5de5\u5177\u6267\u884c\u5931\u8d25: {e.details['tool_name']}\")\nexcept MaxTurnsError as e:\n    print(f\"\u8fbe\u5230\u6700\u5927\u8f6e\u6b21: {e.details['max_turns']}\")\n```\n\n### \u81ea\u5b9a\u4e49\u6a21\u578b\n\n```python\nfrom zipagent import OpenAIModel\n\n# \u81ea\u5b9a\u4e49\u6a21\u578b\u914d\u7f6e\nmodel = OpenAIModel(\n    model=\"gpt-4\",\n    api_key=\"your_api_key\",\n    base_url=\"https://api.openai.com/v1\"\n)\n\nagent = Agent(\n    name=\"CustomAgent\",\n    instructions=\"\u4f60\u662f\u4e00\u4e2a\u52a9\u624b\",\n    tools=[calculate],\n    model=model\n)\n```\n\n## \ud83c\udfaf \u4f7f\u7528\u573a\u666f\n\n- **\ud83d\udcac \u804a\u5929\u673a\u5668\u4eba**: \u5ba2\u670d\u3001\u95ee\u7b54\u3001\u95f2\u804a\u673a\u5668\u4eba\n- **\ud83d\udd27 \u667a\u80fd\u52a9\u624b**: \u4ee3\u7801\u52a9\u624b\u3001\u5199\u4f5c\u52a9\u624b\u3001\u6570\u636e\u5206\u6790\u52a9\u624b  \n- **\ud83c\udf10 \u5de5\u5177\u96c6\u6210**: \u96c6\u6210 API\u3001\u6570\u636e\u5e93\u3001\u7b2c\u4e09\u65b9\u670d\u52a1\n- **\ud83d\udcca \u5de5\u4f5c\u6d41\u81ea\u52a8\u5316**: \u590d\u6742\u7684\u591a\u6b65\u9aa4\u4efb\u52a1\u81ea\u52a8\u5316\n- **\ud83d\udd0d \u77e5\u8bc6\u95ee\u7b54**: \u57fa\u4e8e\u77e5\u8bc6\u5e93\u7684\u667a\u80fd\u95ee\u7b54\u7cfb\u7edf\n\n## \ud83d\udcd6 \u5b8c\u6574\u793a\u4f8b\n\n\u67e5\u770b `examples/` \u76ee\u5f55\u83b7\u53d6\u66f4\u591a\u793a\u4f8b\uff1a\n\n- [`basic_demo.py`](examples/basic_demo.py) - \u57fa\u7840\u529f\u80fd\u6f14\u793a\n- [`stream_demo.py`](examples/stream_demo.py) - \u6d41\u5f0f\u8f93\u51fa\u6f14\u793a\n- [`mcp_demo.py`](examples/mcp_demo.py) - MCP \u5de5\u5177\u96c6\u6210\u6f14\u793a\n\n```bash\n# \u8fd0\u884c\u793a\u4f8b\npython examples/basic_demo.py\npython examples/stream_demo.py\npython examples/mcp_demo.py\n```\n\n## \ud83c\udfd7\ufe0f \u9879\u76ee\u67b6\u6784\n\n```\nZipAgent/\n\u251c\u2500\u2500 src/zipagent/           # \u6838\u5fc3\u6846\u67b6\n\u2502   \u251c\u2500\u2500 agent.py            # Agent \u6838\u5fc3\u7c7b\n\u2502   \u251c\u2500\u2500 context.py          # \u4e0a\u4e0b\u6587\u7ba1\u7406\n\u2502   \u251c\u2500\u2500 model.py            # LLM \u6a21\u578b\u62bd\u8c61\n\u2502   \u251c\u2500\u2500 runner.py           # \u6267\u884c\u5f15\u64ce\n\u2502   \u251c\u2500\u2500 tool.py             # \u5de5\u5177\u7cfb\u7edf\n\u2502   \u251c\u2500\u2500 stream.py           # \u6d41\u5f0f\u5904\u7406\n\u2502   \u251c\u2500\u2500 mcp_tool.py         # MCP \u5de5\u5177\u96c6\u6210\n\u2502   \u2514\u2500\u2500 exceptions.py       # \u5f02\u5e38\u7cfb\u7edf\n\u251c\u2500\u2500 examples/               # \u4f7f\u7528\u793a\u4f8b\n\u251c\u2500\u2500 tests/                  # \u6d4b\u8bd5\u5957\u4ef6\uff08120+ \u6d4b\u8bd5\uff09\n\u2514\u2500\u2500 docs/                   # \u6587\u6863\n```\n\n## \ud83d\udce6 \u4f9d\u8d56\n\n**\u6838\u5fc3\u4f9d\u8d56**:\n- `openai` - OpenAI API \u5ba2\u6237\u7aef\n- `pydantic` - \u6570\u636e\u9a8c\u8bc1\n\n**\u53ef\u9009\u4f9d\u8d56**:\n- `mcp` - MCP \u5de5\u5177\u652f\u6301\n- `nest-asyncio` - \u5d4c\u5957\u5f02\u6b65\u652f\u6301\n- `python-dotenv` - \u73af\u5883\u53d8\u91cf\u7ba1\u7406\n\n## \ud83d\udee0\ufe0f \u5f00\u53d1\n\n### \u672c\u5730\u5f00\u53d1\u73af\u5883\n\n```bash\n# \u514b\u9686\u9879\u76ee\ngit clone https://github.com/JiayuXu0/LiteAgent.git\ncd LiteAgent\n\n# \u4f7f\u7528 uv \u7ba1\u7406\u4f9d\u8d56\uff08\u63a8\u8350\uff09\ncurl -LsSf https://astral.sh/uv/install.sh | sh\nuv sync\n\n# \u8fd0\u884c\u6d4b\u8bd5\nuv run pytest\n\n# \u4ee3\u7801\u68c0\u67e5\nuv run ruff check --fix\nuv run pyright\n```\n\n### \u8d21\u732e\u6307\u5357\n\n\u6211\u4eec\u6b22\u8fce\u5404\u79cd\u5f62\u5f0f\u7684\u8d21\u732e\uff01\n\n1. \ud83d\udc1b **\u62a5\u544a Bug**: \u63d0\u4ea4 [Issue](https://github.com/JiayuXu0/LiteAgent/issues)\n2. \ud83d\udca1 **\u529f\u80fd\u5efa\u8bae**: \u8ba8\u8bba\u65b0\u529f\u80fd\u60f3\u6cd5\n3. \ud83d\udcdd **\u6587\u6863\u6539\u8fdb**: \u5b8c\u5584\u6587\u6863\u548c\u793a\u4f8b\n4. \ud83d\udd27 **\u4ee3\u7801\u8d21\u732e**: \u63d0\u4ea4 Pull Request\n\n### \u5f00\u53d1\u89c4\u8303\n\n- \u4f7f\u7528 `ruff` \u8fdb\u884c\u4ee3\u7801\u683c\u5f0f\u5316\u548c\u68c0\u67e5\n- \u4f7f\u7528 `pyright` \u8fdb\u884c\u7c7b\u578b\u68c0\u67e5\n- \u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4fdd\u6301\u9ad8\u8986\u76d6\u7387\n- \u9075\u5faa\u8bed\u4e49\u5316\u7248\u672c\u89c4\u8303\n\n## \ud83d\udcca \u6027\u80fd\n\n- \u26a1 **\u542f\u52a8\u901f\u5ea6**: \u6beb\u79d2\u7ea7\u521d\u59cb\u5316\n- \ud83d\udd04 **\u5e76\u53d1\u80fd\u529b**: \u652f\u6301\u5f02\u6b65\u5e76\u53d1\u5904\u7406\n- \ud83d\udcbe **\u5185\u5b58\u5360\u7528**: \u8f7b\u91cf\u7ea7\u8bbe\u8ba1\uff0c\u4f4e\u5185\u5b58\u5360\u7528\n- \ud83d\udce6 **\u5305\u5927\u5c0f**: Wheel \u5305\u4ec5 ~15KB\n\n## \ud83d\uddfa\ufe0f \u8def\u7ebf\u56fe\n\n- [ ] **\u591a\u6a21\u578b\u652f\u6301**: Claude\u3001Gemini\u3001\u672c\u5730\u6a21\u578b\n- [ ] **\u63d2\u4ef6\u7cfb\u7edf**: \u66f4\u4e30\u5bcc\u7684\u6269\u5c55\u673a\u5236\n- [ ] **\u53ef\u89c6\u5316\u754c\u9762**: Web UI \u548c\u76d1\u63a7\u9762\u677f\n- [ ] **\u5206\u5e03\u5f0f\u652f\u6301**: \u591a\u5b9e\u4f8b\u534f\u4f5c\n- [ ] **\u6027\u80fd\u4f18\u5316**: \u7f13\u5b58\u548c\u6279\u5904\u7406\u4f18\u5316\n\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\n\nMIT License - \u8be6\u89c1 [LICENSE](LICENSE) \u6587\u4ef6\n\n## \ud83e\udd1d \u81f4\u8c22\n\n\u611f\u8c22\u6240\u6709\u8d21\u732e\u8005\u548c\u793e\u533a\u652f\u6301\uff01\n\n- OpenAI - \u63d0\u4f9b\u5f3a\u5927\u7684 LLM API\n- MCP \u793e\u533a - Model Context Protocol \u6807\u51c6\n- Python \u751f\u6001 - \u4f18\u79c0\u7684\u5f00\u53d1\u5de5\u5177\u94fe\n\n---\n\n\u2b50 \u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u5bf9\u4f60\u6709\u5e2e\u52a9\uff0c\u8bf7\u7ed9\u6211\u4eec\u4e00\u4e2a Star\uff01\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u8f7b\u91cf\u7ea7\u7684 AI Agent \u6846\u67b6",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/JiayuXu0/LiteAgent",
        "Issues": "https://github.com/JiayuXu0/LiteAgent/issues",
        "Repository": "https://github.com/JiayuXu0/LiteAgent.git"
    },
    "split_keywords": [
        "agent",
        " ai",
        " assistant",
        " framework",
        " llm"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "724dcf60aac60c6e00418f698a2de7ec4e636efe9a569865c6f9030633658157",
                "md5": "34348700dd6c42e4c77c856e498623dd",
                "sha256": "1321ae5fd5a7a346f159df0ed3adb03a450759131c5282ea285b8d41abe6c278"
            },
            "downloads": -1,
            "filename": "zipagent-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "34348700dd6c42e4c77c856e498623dd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 24565,
            "upload_time": "2025-08-13T02:40:14",
            "upload_time_iso_8601": "2025-08-13T02:40:14.340971Z",
            "url": "https://files.pythonhosted.org/packages/72/4d/cf60aac60c6e00418f698a2de7ec4e636efe9a569865c6f9030633658157/zipagent-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "364de62ce852c24adff66077dc17f20963dba9d1ca8595e868853efdf32084e1",
                "md5": "ae226bf4b6c0e98cf0c39ad1d8dbf9e0",
                "sha256": "f1c07790842a6aafd431c8fbf78ba73e6d80e1dc9d0ac3370ffb35d9e63db18c"
            },
            "downloads": -1,
            "filename": "zipagent-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ae226bf4b6c0e98cf0c39ad1d8dbf9e0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 35773,
            "upload_time": "2025-08-13T02:40:15",
            "upload_time_iso_8601": "2025-08-13T02:40:15.748385Z",
            "url": "https://files.pythonhosted.org/packages/36/4d/e62ce852c24adff66077dc17f20963dba9d1ca8595e868853efdf32084e1/zipagent-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 02:40:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "JiayuXu0",
    "github_project": "LiteAgent",
    "github_not_found": true,
    "lcname": "zipagent"
}
        
Elapsed time: 0.77518s