2.9 KiB
2.9 KiB
Code Manager Agent
基于 Pydantic AI + FastMCP 的代码仓库管理 Agent。
支持:
- Gitee 仓库 pull / push(HTTP 用户名+密码认证)
- 本地文件更新
- SSH 远程执行命令
- SSH 到测试机器 git clone 并运行测试
代码仓库地址:http://gitee.ath.cx:3000/zhanggangyong/agent_management
快速开始
本地运行
cd agent_templates/agents/code_manager_agent
pip install -r requirements.txt
export GITEE_REPO_URL=http://gitee.ath.cx:3000/zhanggangyong/agent_management
export WORK_DIR=/path/to/local/repo
python run_api_server.py
Docker
docker build -t code-manager-agent:latest .
docker run -p 8000:8000 \
-e GITEE_REPO_URL=http://gitee.ath.cx:3000/zhanggangyong/agent_management \
-e WORK_DIR=/workspace \
code-manager-agent:latest
环境变量
| 变量 | 必需 | 默认值 | 说明 |
|---|---|---|---|
| GITEE_REPO_URL | 否 | http://gitee.ath.cx:3000/zhanggangyong/agent_management |
Gitee 仓库地址 |
| WORK_DIR | 否 | /workspace |
本地仓库根路径 |
| API_PORT | 否 | 8000 |
服务端口 |
| POD_NAME | 否 | code-manager-agent |
Agent 名称(用于 callback) |
| USER_ID | 否 | `` | 用户 ID(用于 callback) |
| AGENT_CALLBACK_URL | 否 | Agent Manager 默认回调 | 计费回调地址 |
项目结构
code_manager_agent/
├── Dockerfile
├── README.md
├── API_DOC.md
├── requirements.txt
├── run_api_server.py
├── common/
│ ├── __init__.py
│ └── agent_callback_utils.py
└── src/
├── __init__.py
└── server/
├── __init__.py
├── api_server.py # FastAPI + MCP HTTP
└── mcp_server.py # MCP 工具定义
工具列表
| 工具 | 说明 |
|---|---|
git_pull |
从 Gitee 拉取最新代码 |
git_push |
提交并推送代码到 Gitee |
update_code |
更新本地仓库中的指定文件 |
ssh_exec |
SSH 连接远程机器执行命令 |
ssh_git_clone_and_test |
SSH 到测试机 clone 代码并运行测试 |
注册到 Agent Manager
在 k8s_manager.py 中添加:
# TEMPLATE_PORTS
"code_manager_agent": 8000,
# image_map
"code_manager_agent": "agnettaiji.azurecr.io/ai-agents/code-manager-agent:latest",
在 app.py 的 valid_templates 中添加 "code_manager_agent"。
OpenClaw 接入说明
将以下配置添加到 OpenClaw 的 MCP 服务列表:
{
"name": "code_manager_agent",
"url": "http://<HOST>:8000/mcp",
"transport": "http",
"headers": {
"api-key": "<YOUR_API_KEY>"
}
}
或使用 SSE 传输:
{
"name": "code_manager_agent",
"url": "http://<HOST>:8000/sse",
"transport": "sse",
"headers": {
"api-key": "<YOUR_API_KEY>"
}
}
详细 API 说明请参考 API_DOC.md。