从零开始在 PaaS 平台上创建、部署、运行你的 AI 智能体
# PaaS 服务已在运行 (端口 8000)
curl http://localhost:8000/health
# {"status":"ok","version":"0.1.0"}
# 已有 API Key(如果没有,先创建租户)
python -m agentpaas create-tenant --name "我的空间"
# 输出 API Key,自动保存到 ~/.agentpaas/config.json
不写 YAML,直接指定 prompt:
python -m agentpaas agent create \
--name "代码助手" \
--prompt "你是一个 Python 代码助手,帮助用户编写、调试和优化代码。用中文回复。" \
--description "Python 编程辅助" \
--tags "coding,python"
输出:
Agent created: ag_xxxx
Version: 1
Endpoint: /api/v1/agents/ag_xxxx
创建配置文件 my-agent.yml:
agentId: my-assistant
name: 我的助手
description: 一个能操控电脑的个人 AI 助手
type: react
model:
provider: anthropic
name: claude-sonnet-4-20250514
temperature: 0.3
maxTokens: 4096
systemPrompt: |
你是一个智能助手,能帮用户完成各种任务。
通过输出 JSON 代码块调用工具:
```json
{"action": "工具名", "input": {参数}}
可用工具: ReadFile, EditFile, WriteFile, Bash, WebSearch, 等42个工具。 任务完成时调用: {"action": "terminate", "input": {"answer": "完成摘要"}} 用中文回复,简洁自然。
react: maxSteps: 15 toolTimeout: 30
memory: enabled: true strategy: local size: 30
mcp: localTools:
- ReadFile
- EditFile
- WriteFile
- ListFiles
- SearchContent
- Bash
- GitStatus
- GitDiff
- GitLog
- GitCommit
- CodeSearch
- ProjectMap
- RunTests
- WebSearch
- WebFetch
- TaskCreate
- TaskList
- NotebookEdit
- MemoryStore
- MemoryRecall
- Notify
- terminate
policy:
mode: auto
guard: dangerousCommandBlock: true highRiskConfirmation: true maxOutputLength: 5000
部署:
```bash
python -m agentpaas agent create --name "我的助手" --config my-agent.yml
已有的模板:
| 模板 | 说明 | 路径 |
|---|---|---|
| agent67 | 全能助手 + 编程 (42 工具) | agentexample/agent67/agent-config.yml |
| research67 | 科研助手 (论文/实验) | agentexample/research67/orchestrator.yml |
| agentbuilder67 | Agent 构建器 | agentexample/agentbuilder67/orchestrator.yml |
复制模板后修改:
cp agentexample/agent67/agent-config.yml my-agent.yml
# 编辑 my-agent.yml 修改 name、systemPrompt 等
python -m agentpaas agent create --name "我的助手" --config my-agent.yml
# 单次执行
python -m agentpaas run ag_xxxx "帮我分析一下当前目录的项目结构"
# 从文件读取输入
python -m agentpaas run ag_xxxx --input-file task.txt
# 覆盖参数
python -m agentpaas run ag_xxxx "写一首诗" --temperature 0.8 --max-steps 5
curl -X POST http://localhost:8000/api/v1/agents/ag_xxxx/run \
-H "Authorization: Bearer ap_your_key" \
-H "Content-Type: application/json" \
-d '{"input": "你好,介绍一下你自己"}'
python -m agentexample.agent67.run
python -m agentpaas agent list
python -m agentpaas agent get ag_xxxx
# 修改 YAML 后重新部署(自动版本递增)
python -m agentpaas agent update ag_xxxx --config my-agent-v2.yml --changelog "优化 prompt"
python -m agentpaas agent rollback ag_xxxx --version 1
python -m agentpaas agent versions ag_xxxx
python -m agentpaas agent delete ag_xxxx
# 平台总览
python -m agentpaas status
# 所有 Agent 健康度
python -m agentpaas status agents
# 单个 Agent 健康度
python -m agentpaas health ag_xxxx
# 运行历史
python -m agentpaas runs ag_xxxx --limit 10
# 运行详情
python -m agentpaas trace run_xxxx
# 用量统计
python -m agentpaas usage --group-by agent
在 YAML 的 mcp.localTools 中声明需要的工具:
| 工具 | 功能 |
|---|---|
ReadFile |
读取文件(文本/PDF/CSV/Notebook/图片) |
EditFile |
精确字符串替换 |
WriteFile |
创建/覆盖文件 |
ListFiles |
Glob 文件搜索 |
SearchContent |
正则内容搜索 |
| 工具 | 功能 |
|---|---|
CodeSearch |
语义代码搜索(6 种语言) |
ProjectMap |
项目结构概览 |
RunTests |
自动检测框架运行测试 |
| 工具 | 功能 |
|---|---|
Bash |
终端命令(持久 CWD) |
GitStatus / GitDiff / GitLog / GitCommit / GitBranch |
Git 全流程 |
| 工具 | 功能 |
|---|---|
WebSearch |
网络搜索 |
WebFetch |
获取网页→Markdown |
| 工具 | 功能 |
|---|---|
NotebookEdit |
Jupyter Notebook cell 编辑 |
DocGen |
Markdown→HTML/PDF/Word |
ChunkSplit |
长文档分块 |
OCR |
图片/扫描件文字提取 |
| 工具 | 功能 |
|---|---|
KBCreate / KBAdd / KBSearch / KBList |
知识库管理全流程 |
| 工具 | 功能 |
|---|---|
TaskCreate / TaskUpdate / TaskList |
任务创建/更新/列表 |
| 工具 | 功能 |
|---|---|
MemoryStore / MemoryRecall / MemoryList / MemoryForget |
持久化记忆 |
ScheduleCreate / ScheduleList / ScheduleDelete |
定时任务 |
Notify |
多渠道通知 |
EventSubscribe / EventList |
事件订阅 |
ProfileGet / ProfileUpdate |
用户画像 |
LearningFeedback / LearningStrategies |
自适应学习 |
type: simple
systemPrompt: "你是一个助手。"
model:
name: claude-sonnet-4-20250514
agentId: string # Agent 唯一标识
name: string # 显示名称
description: string # 描述
type: simple|react|chain|router|parallel # 类型
model:
provider: anthropic|openai|dashscope # LLM 提供商
name: string # 模型名
temperature: 0.0-1.0 # 温度
maxTokens: int # 最大输出 token
fallback: [string] # 备选模型列表
systemPrompt: string # 系统提示词
react: # ReAct 模式配置
maxSteps: int # 最大步数 (建议 10-20)
toolTimeout: int # 工具超时秒数
thinkTimeout: int # LLM 思考超时
memory:
enabled: bool # 启用记忆
strategy: local|redis # 存储策略
size: int # 记忆条数上限
ttl: int # 记忆存活秒数
mcp:
localTools: [string] # 启用的工具列表
policy:
mode: auto|force|disable # 工具策略
runtime:
engine: recursive|cek|adaptive # 执行引擎选择(默认 recursive)
# cek: 逐步成本监控、暂停/恢复、循环检测
# adaptive: 自动选择
guard:
dangerousCommandBlock: bool # 拦截危险命令
highRiskConfirmation: bool # 高风险操作确认
maxOutputLength: int # 输出长度限制
validator: string # 输出验证表达式
retry: int # 验证失败重试次数
fallback: error|empty|last # 失败后策略
hooks: # Hook 配置
pre_tool:
- command: string # Shell hook
post_llm:
- command: string
persona: # 人格配置
name: string # lambda🐑 / jarvis / friday / 自定义
style: casual|formal|efficient
template: string # 内置模板名
type: react
systemPrompt: "你是编程助手。编程流程: ReadFile→CodeSearch→EditFile→RunTests→GitCommit"
mcp:
localTools: [ReadFile, EditFile, WriteFile, CodeSearch, ProjectMap, RunTests, Bash, GitStatus, GitDiff, GitCommit, terminate]
type: react
systemPrompt: "你是知识问答助手。先在知识库中搜索,搜不到再用 WebSearch。"
mcp:
localTools: [KBSearch, KBAdd, WebSearch, WebFetch, WriteFile, terminate]
type: react
systemPrompt: "你是文件管理助手。帮用户整理、搜索、分类文件。"
mcp:
localTools: [ReadFile, WriteFile, ListFiles, SearchContent, Bash, Notify, terminate]
type: react
systemPrompt: "你是日报生成助手。每天分析 git log 和文件变更,生成日报保存到桌面。"
mcp:
localTools: [GitLog, GitDiff, ProjectMap, WriteFile, DocGen, Notify, terminate]
Q: Agent 超时?
增大 react.thinkTimeout 和 react.toolTimeout,或换更快的模型。
Q: 工具调用失败?
检查 mcp.localTools 中是否声明了该工具。42 个工具名区分大小写。
Q: 如何查看所有可用工具?
python -c "from lambdagent.builtin_tools.registry import BUILTIN_TOOLS; print(sorted(BUILTIN_TOOLS.keys()))"
Q: 如何让 Agent 记住我?
在 mcp.localTools 中加入 MemoryStore 和 MemoryRecall。
Q: 如何本地交互式运行?
python -m agentexample.agent67.run
Q: 如何微信绑定?
python -m agentpaas wechat ag_xxxx