AI-Native Code Agent Service
一个极简、AI原生化的代码助手服务,提供Rust API和HTTP REST接口,可集成到任何应用中。
🎯 项目特点
- 🏗️ 服务架构: 可作为独立服务运行,提供标准API接口
- 🤖 AI原生: 从底层为AI自主性而构建,最大化AI能力
- 🔗 双接口: 提供Rust API和HTTP REST API两种使用方式
- ⚡ 高性能: 支持并发任务执行和实时监控
- 🛠️ 工具集成: 安全的文件操作、命令执行等工具系统
- 📊 监控完备: 内置指标收集和健康检查
- 🐳 容器化: 支持Docker部署和Kubernetes集群
- 🔒 企业级: 支持认证、限流、CORS等企业特性
🚀 快速开始
环境要求
- Rust 1.70+
- 配置的AI模型API密钥(Zhipu GLM-4、OpenAI GPT-4等)
方式一:命令行工具
# 克隆项目
# 配置API密钥
# 编辑 .env 文件,添加你的API密钥
# 运行CLI
方式二:HTTP服务
# 启动HTTP服务
# 在另一个终端测试
方式三:Docker部署
# 使用Docker Compose启动完整服务栈
# 访问服务
📋 使用方式
1. Rust API 集成
use ;
use Arc;
async
2. HTTP REST API
# 执行任务
# 批量执行任务
# 获取任务状态
# 获取服务状态
# 获取指标
3. 命令行工具
# 基本用法
# 交互模式
# 详细输出
# JSON输出
🔧 配置
基本配置 (config.toml)
[]
= "zhipu" # zhipu, openai, anthropic, local
= "glm-4"
= "your-api-key"
= 4000
= 0.7
[]
= 10
= 3
= 1
= 300
[]
= true
= true
= "."
= [".", "./src"]
= ["rm -rf", "format", "fdisk"]
[]
= 10
= 300
= true
= "info"
[]
= ["*"]
= ["GET", "POST", "DELETE"]
= ["*"]
= false
[]
= 60
= 10
环境变量
# 服务配置
AI_AGENT_MAX_CONCURRENT_TASKS=10
AI_AGENT_DEFAULT_TASK_TIMEOUT=300
AI_AGENT_ENABLE_METRICS=true
AI_AGENT_LOG_LEVEL=info
# 服务器配置
BIND_ADDRESS=0.0.0.0:8080
# AI模型配置
AI_AGENT_MODEL_PROVIDER=zhipu
AI_AGENT_MODEL_NAME=glm-4
AI_AGENT_API_KEY=your-api-key
# CORS配置
AI_AGENT_CORS_ALLOWED_ORIGINS=*
📊 API 文档
核心 API 端点
| 端点 | 方法 | 描述 |
|---|---|---|
/health |
GET | 健康检查 |
/api/v1/status |
GET | 服务状态 |
/api/v1/metrics |
GET | 服务指标 |
/api/v1/tools |
GET | 可用工具 |
/api/v1/tasks |
POST | 执行任务 |
/api/v1/tasks/batch |
POST | 批量执行 |
/api/v1/tasks/{id} |
GET | 任务状态 |
/api/v1/tasks/{id} |
DELETE | 取消任务 |
任务请求格式
任务响应格式
🐳 Docker 部署
基础部署
# 构建镜像
# 运行容器
Docker Compose
# 启动完整服务栈(包含监控)
# 查看服务状态
# 查看日志
Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: ai-agent-service
spec:
replicas: 3
selector:
matchLabels:
app: ai-agent-service
template:
metadata:
labels:
app: ai-agent-service
spec:
containers:
- name: ai-agent
image: ai-agent-service:latest
ports:
- containerPort: 8080
env:
- name: AI_AGENT_API_KEY
valueFrom:
secretKeyRef:
name: ai-agent-secrets
key: api-key
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:
name: ai-agent-service
spec:
selector:
app: ai-agent-service
ports:
- port: 80
targetPort: 8080
type: ClusterIP
📈 监控和指标
Prometheus 指标
服务在 /metrics 端点导出Prometheus指标:
ai_agent_requests_total- API请求总数ai_agent_request_duration_seconds- 请求耗时分布ai_agent_tasks_total- 处理任务总数ai_agent_tasks_completed_total- 完成任务数ai_agent_tasks_failed_total- 失败任务数ai_agent_active_tasks- 当前活跃任务数ai_agent_cpu_usage_percent- CPU使用率ai_agent_memory_usage_mb- 内存使用量
Grafana 仪表板
使用提供的Docker Compose配置可以启动完整的监控栈:
- Grafana: http://localhost:3000 (admin/admin)
- Prometheus: http://localhost:9090
🧪 测试
单元测试
集成测试
负载测试
# 安装hey
# 负载测试
🏗️ 架构
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Rust Client │ │ HTTP Client │ │ Other Clients │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌─────────────┴─────────────┐
│ AI Agent Service │
│ (Core Business Logic) │
└─────────────┬─────────────┘
│
┌──────────────────────┼──────────────────────┘
│ │ │
┌─────┴─────┐ ┌──────┴───────┐ ┌──────┴─────┐
│ Models │ │ Tools │ │ Metrics │
│ (Zhipu, │ │ (File Ops, │ │ (Prometheus│
│ OpenAI, │ │ Commands, │ │ Export) │
│ etc.) │ │ etc.) │ │ │
└───────────┘ └─────────────┘ └────────────┘
🔒 安全性
认证和授权
- API密钥认证
- 请求速率限制
- CORS配置
- 权限控制
执行安全
- 沙箱文件访问
- 危险命令过滤
- 超时保护
- 资源限制
🤝 贡献
欢迎贡献!请查看 CONTRIBUTING.md 了解详情。
📚 文档
📄 许可证
MIT License - 详见 LICENSE 文件
🔗 相关链接
AI-Native Code Agent Service - 让AI能力轻松集成到任何应用中。