- 新增 MCP client 配置加载,支持 CLI/chat 通过配置文件接入 MCP - 完善 chat 交互命令,支持参数查看、事件查看、checkpoint 列表与加载 - 增加 LLM action 后诊断能力,支持真实 LLM 和本地规则兜底 - 将 chat 人工确认点接入 LangGraph interrupt/checkpointer - 更新 README、流程图、待办文档和打包说明 - 补充相关单元测试
5.5 KiB
5.5 KiB
PAM 部署 Agent 解压即用包
这是打包后的 PAM 部署 Agent 使用说明。该包已包含 Python 运行时和 Python 依赖,目标 Linux 机器解压后即可运行。
目录说明
pam-deploy-agent-linux-x86_64/
run.sh # 推荐入口,带中文帮助
pam-deploy-agent # PyInstaller 生成的可执行程序
doc_scripts/
deploy.sh # Linux 脚本 action 入口
config.txt.example # 参数配置示例
PAM_AUTO_DEPLY_SKILL.md
mcp_client.example.json
README.md # 当前说明
LICENSE
doc_scripts 只保留运行必需文件,不包含项目设计文档、测试脚本或 Windows 脚本。
查看帮助
./run.sh --help
查看某个子命令的原始参数:
./run.sh chat --help
./run.sh run-deploy --help
发布包默认包含 rich 和 prompt_toolkit。如果终端支持,chat 会自动启用更清晰的输出、命令补全和输入历史;不可用时会自动降级为普通文本输入输出。
chat 内的失败回滚确认由 LangGraph interrupt 托管;执行停在确认点后,输入 approve 或 reject [原因] 会恢复同一个图线程继续处理。
交互式使用
推荐先用 fake 策略验证流程:
./run.sh chat --config doc_scripts/config.txt.example --strategy fake --checkpoint runtime/checkpoints/demo.json
如果要启用 MCP,先按真实 MCP server 修改 mcp_client.example.json,再使用 hybrid_node_mcp:
./run.sh chat \
--config doc_scripts/config.txt.example \
--strategy hybrid_node_mcp \
--mcp-config mcp_client.example.json \
--checkpoint runtime/checkpoints/demo.json
进入对话框后可输入:
PAM> 请用 MCP 预演部署 HET PAM Node 版本 2.0.5,不要动环境
PAM> preview
PAM> set VERSION_NUMBER=2.0.6
PAM> run
即将执行真实 action;确认执行请输入 yes: yes
PAM> status
PAM> params
PAM> events 5
PAM> llm action-analysis on
PAM> mcp config mcp_client.example.json
PAM> list checkpoints
PAM> load checkpoint runtime/checkpoints/demo.json
PAM> approve
PAM> resume
PAM> exit
一次性命令
只做理解和计划生成,不执行:
./run.sh analyze --config doc_scripts/config.txt.example --text "请用 MCP 预演部署 HET PAM Node 版本 2.0.5,不要动环境"
预演 action 路由:
./run.sh preview --config doc_scripts/config.txt.example --strategy fake
执行 fake 完整部署流程:
./run.sh run-deploy --config doc_scripts/config.txt.example --strategy fake --checkpoint runtime/checkpoints/demo.json --confirm
执行时开启 action 后诊断:
./run.sh run-deploy \
--config doc_scripts/config.txt.example \
--strategy fake \
--checkpoint runtime/checkpoints/demo.json \
--analyze-actions \
--confirm
使用 MCP 的完整部署:
./run.sh run-deploy \
--config doc_scripts/config.txt.example \
--strategy hybrid_node_mcp \
--mcp-config mcp_client.example.json \
--checkpoint runtime/checkpoints/demo.json \
--confirm
处理失败后的回滚确认:
./run.sh confirm --checkpoint runtime/checkpoints/demo.json --decision approve --confirm
./run.sh resume --checkpoint runtime/checkpoints/demo.json --confirm
拒绝回滚:
./run.sh confirm --checkpoint runtime/checkpoints/demo.json --decision reject --note "人工决定暂不回滚" --confirm
LLM 配置
不配置 LLM 时会使用本地规则 fallback。真实 LLM 使用 OpenAI-compatible /chat/completions:
export PAM_LLM_BASE_URL="https://your-llm.example.com/v1"
export PAM_LLM_API_KEY="your-api-key"
export PAM_LLM_MODEL="your-model-name"
./run.sh analyze --config doc_scripts/config.txt.example --text "请分析这次部署"
也可以用 CLI 参数:
./run.sh analyze \
--config doc_scripts/config.txt.example \
--text "请分析这次部署" \
--llm-base-url https://your-llm.example.com/v1 \
--llm-api-key your-api-key \
--llm-model your-model-name
chat 内也可以热加载 LLM:
PAM> llm config base_url=https://your-llm.example.com/v1 api_key=your-api-key model=your-model-name
PAM> llm action-analysis on
PAM> llm fallback
策略说明
fake:全部使用 fake runner,不访问真实环境。script_only:全部 action 走脚本。hybrid_node_mcp:PAM_HOME 走脚本,PAM_NODE 走 MCP。
MCP 配置
--mcp-config 指向 MCP client JSON 配置文件。当前支持 stdio transport:
{
"server_name": "pam-node-prod",
"transport": "stdio",
"command": "/opt/pam-node-mcp/server",
"args": ["--stdio"],
"cwd": "/opt/pam-node-mcp",
"env": {
"PAM_NODE_ENV": "prod"
},
"timeout_seconds": 60,
"tool_names": {
"get-online-ips": "pam_get_online_ips",
"verify-ip": "pam_verify_ip",
"rollback-ip": "pam_rollback_ip"
}
}
字段说明:
command:MCP server 启动命令。args:MCP server 启动参数。cwd:MCP server 工作目录,可为空。env:传给 MCP server 的环境变量,可为空。timeout_seconds:单次 tool 调用超时时间。tool_names:Agent action 到 MCP tool name 的映射。
注意事项
- 执行真实 action 前请确认配置文件中的
HOME_BASE_URL、CLIENT_ID、CLIENT_SECRET、AIRPORT_CODE、APP_NAME、MODULE_NAME、VERSION_NUMBER、ZIP_FILE_PATH。 checkpoint会保存完整运行参数,请放在受控目录。hybrid_node_mcp、resume、confirm如果需要执行 MCP action,请同时传入--mcp-config。