acn_agent/
├── acn_agent/
│ ├── api/
│ │ └── routes.py
│ ├── core/
│ │ ├── config.py
│ │ └── logging.py
│ ├── models/
│ │ └── common.py
│ ├── services/
│ │ ├── agent_service.py
│ │ ├── http_forwarder.py
│ │ ├── pipeline_logger.py
│ │ └── state_store.py
│ ├── tests/
│ │ └── test_agent_api.py
│ └── main.py
├── docs/
│ ├── api.md
│ ├── architecture.md
│ └── quick_start.md
├── mocks/
│ ├── acn_sdk_mock.py
│ ├── agent_gw_mock.py
│ ├── common.py
│ ├── idm_mock.py
│ └── webui_mock.py
├── scripts/
│ └── build_acn_agent.sh
├── start_acn_agent.sh
├── acn_agent.py
├── message.txt
├── pyproject.toml
└── requirements.txt
本项目使用 Python + FastAPI 实现 ACN Agent 组件,负责承接 ACN SDK 请求并将消息转发到 IDM 或 AgentGW,同时处理 WebUI 的清理指令,并按需向 WebUI 推送 /acn/v3/pipeline-logs 流水日志。
- 监听
9010端口,接收 ACN SDK 请求 - 根据接口路径转发消息到 IDM(
9020) 或 AgentGW(9001) - 原样返回上游响应给 ACN SDK
- 处理 WebUI 的
/clear请求,清理本地记录与打点 - 处理 WebUI 的
/clear请求,清理本地记录 - 关键消息收发、状态变化、转发结果全部通过
logging记录 - 通过内存状态存储保存请求记录和流水日志,便于联调与扩展
- IDM、AgentGW、WebUI 的 IP 地址在代码中固定定义,默认使用本机
127.0.0.1
sequenceDiagram
participant SDK as ACN SDK
participant Agent as ACN Agent
participant IDM as IDM
participant AGW as AgentGW
participant UI as WebUI
alt 身份申请/删除
SDK->>Agent: POST /idm/v1/identity-applications 或 /acn-agent/v1/agent-deletions
Agent->>UI: 推送 pipeline log
Agent->>IDM: 转发请求
IDM-->>Agent: 返回响应
Agent->>UI: 推送 pipeline log
Agent-->>SDK: 返回响应
else Agent 卡片/任务执行/任务终止
SDK->>Agent: POST AgentGW 类接口
Agent->>UI: 推送 pipeline log
Agent->>AGW: 转发请求
AGW-->>Agent: 返回响应
Agent->>UI: 推送 pipeline log
Agent-->>SDK: 返回响应
end
UI->>Agent: POST /clear
Agent-->>UI: 返回清理结果
详见:
Linux / Ubuntu 一键启动:
chmod +x start_acn_agent.sh
./start_acn_agent.sh也可以直接运行:
python3 acn_agent.py测试使用桩传输模拟 IDM、AgentGW、WebUI,不开发其他系统组件,覆盖:
- IDM 转发
- AgentGW 转发
- clear 清理
- 健康检查
执行命令:
pytest可执行文件构建脚本:
chmod +x scripts/build_acn_agent.sh
./scripts/build_acn_agent.sh生成后的文件路径:
dist/acn_agent
已提供以下模拟程序用于本地测试 ACN Agent:
mocks/idm_mock.pymocks/agent_gw_mock.pymocks/webui_mock.pymocks/acn_sdk_mock.py
推荐直接使用:
python3 mocks/idm_mock.py
python3 mocks/agent_gw_mock.py
python3 mocks/webui_mock.py
python3 mocks/acn_sdk_mock.py demo