auto_agent/backend/README.md
2521690 a0f7152e80 feat(mvp): 接入真实样板应用桥接并推进演示主线
- 新增 `sample-apps/order-service` Java 样板应用及 Win/Linux 构建、启停、状态脚本
- 新增 `LocalSampleAppService`,在 `software-a` 中支持 `order-service test` 本地桥接部署
- 增加桥接开关配置:`ENABLE_SAMPLE_APP_BRIDGE`、`SAMPLE_APP_ROOT`
- 修正后端配置读取方式,环境变量可在运行时生效(`Settings` 改为 `default_factory`)
- 更新应用元数据默认验证目标:`127.0.0.1:18080`、本地日志路径
- 新增桥接测试 `test_sample_app_bridge.py`,后端基线更新至 `24 passed`
- 更新 `.gitignore`,忽略样板应用 `build/runtime` 产物
- 更新 README 与《当前进度总结》:记录本轮“真实样板应用 + 桥接能力”进展,MVP 进度约 `97%`
2026-04-09 15:45:03 +08:00

5.1 KiB

Smart Deploy Agent Demo Backend

Setup

python -m venv .venv
.venv\\Scripts\\python -m pip install -e backend

Run

.venv\\Scripts\\python -m uvicorn app.main:app --reload --app-dir backend

Demo UI

After startup, open:

http://127.0.0.1:8000/demo/chat

Test

The lightweight API verification can run with in-memory SQLite:

set PYTHONPATH=backend
set DATABASE_URL=sqlite:///:memory:
.venv\\Scripts\\python -m pytest backend/tests -q -p no:cacheprovider

Runtime Notes

This repo currently defaults to:

  1. database: sqlite:///./data/agent_demo.db
  2. demo cache / queue: no Redis dependency
  3. edge defaults: edge_id=edge-shanghai-001 tool_name=http_health_check
  4. demo operator defaults: alice(u1001) for task execution bob(u2001) for approval
  5. optional sample app bridge: ENABLE_SAMPLE_APP_BRIDGE=true SAMPLE_APP_ROOT=sample-apps/order-service

In the current sandbox, file-based SQLite may fail with disk I/O error. For tests and local verification here, use:

set DATABASE_URL=sqlite:///:memory:

Implemented API Scope

Current backend includes:

  1. agent task POST /api/agent/tasks POST /api/agent/tasks/{task_id}/confirm POST /api/agent/tasks/{task_id}/cancel GET /api/agent/tasks/{task_id} GET /api/agent/tasks/{task_id}/report
  2. demo chat POST /api/demo/chat/sessions GET /api/demo/chat/sessions/{session_id} POST /api/demo/chat/sessions/{session_id}/messages POST /api/demo/chat/sessions/{session_id}/tasks/{task_id}/confirm
  3. demo web GET / GET /demo/chat
  4. demo identity POST /api/demo/identity/login GET /api/demo/identity/me GET /api/demo/identity/users/{user_id}/permissions POST /api/demo/identity/token/introspect
  5. demo approval POST /api/demo/approval/requests GET /api/demo/approval/requests/{approval_id} POST /api/demo/approval/requests/{approval_id}/decision GET /api/demo/approval/requests
  6. software-a minimal implementation POST /api/demo/software-a/deploy-tasks GET /api/demo/software-a/deploy-tasks/{software_a_task_id} POST /api/demo/software-a/permissions/check
  7. edge POST /api/agent/edge/heartbeat POST /api/agent/edge/tasks/pull POST /api/agent/edge/tasks/report POST /api/agent/edge/events

Current execution flow:

  1. create chat session or open web demo
  2. send one natural-language message
  3. create task
  4. confirm task
  5. high-risk task enters approval flow
  6. check software-a minimal implementation permission
  7. create software-a minimal implementation deploy task
  8. build metadata-driven multi-step edge verification plan: check_process check_port tcp_probe http_health_check grep_log
  9. edge pulls and reports verification results
  10. task reaches SUCCEEDED / FAILED / CANCELLED
  11. task detail/report returns software-a status, approval trace, tool trace, verification trace and audit trace

Real Java Sample App

The repo now includes a real Java sample app:

sample-apps/order-service

When ENABLE_SAMPLE_APP_BRIDGE=true, software-a minimal implementation can bridge the order-service test deploy action to the local sample app startup flow.

Current execution metrics:

  1. tool_call.duration_ms is persisted from started_at / finished_at
  2. verification_trace.duration_ms is persisted for edge task reports
  3. task_report.task_metrics returns task-level aggregate durations and counts
  4. current aggregate metrics include: total_duration_ms confirm_wait_duration_ms approval_duration_ms execution_duration_ms software_a_duration_ms_total tool_call_duration_ms_total verification_duration_ms_total verification_queue_wait_duration_ms_total verification_end_to_end_duration_ms_total
  5. task_report.audit_summary returns audit result counts, action types and operator summary

Current result summary capabilities:

  1. task detail/report returns result_summary_detail
  2. summary includes final status, final reason, software-a result, approval result and verification result
  3. demo chat API returns assistant-style parse/confirm messages
  4. demo web page provides a visual conversation -> confirm -> execute -> report flow

Demo failure semantics currently include:

  1. if app_code or version contains fail, the software-a minimal implementation returns a failed deploy task
  2. approval rejection moves task to CANCELLED
  3. failed edge report moves task to FAILED

Current Verification Baseline

Automated tests currently cover:

  1. create / confirm / get task
  2. high-risk approval path
  3. identity and software-a minimal implementation APIs
  4. edge heartbeat / pull / report
  5. edge event report
  6. task report trace aggregation
  7. cancel running task

Current baseline: 24 passed Current baseline: 23 passed

Next Focus

Recommended next implementation steps:

  1. continue enriching app-metadata-driven verification templates
  2. continue polishing the demo UI and session flow
  3. validate native Linux packaging in a real bash/Linux environment
  4. then continue with second-batch OpenAPI