|
|
1 dia atrás | |
|---|---|---|
| .. | ||
| .cache | 1 dia atrás | |
| backend | 1 dia atrás | |
| exports | 1 dia atrás | |
| frontend | 1 dia atrás | |
| test-artifacts | 1 dia atrás | |
| .gitignore | 1 dia atrás | |
| DATA_SOURCE_CONTRACT.md | 1 dia atrás | |
| DESIGN.md | 1 dia atrás | |
| EVENT_AUDIT_AND_GAPS.md | 1 dia atrás | |
| PRODUCT.md | 1 dia atrás | |
| README.md | 1 dia atrás | |
独立、只读的 FastAPI + Next.js 运行台。V8 只消费最新业务表和结构化运行事件,把真实脚本构建过程整理成非技术人员能够顺着读完的横向故事,并统一四类 Agent 决策的权限、摘要和详情表达。
创作目标 → 本轮规划 → 实现 Agent 多路方案 → 多方案评审 Agent → 主 Agent 多路决策 → 主脚本整体评审 → 本轮产出
每轮先发散为多个实现方案。展开方案后,取数阶段将“实现 Agent 直接调用工具”和“委派取数 Agent”放在同一层级;取数 Agent 内部展示多次查询和自己的初筛整理。实现 Agent 的正式数据取舍位于取数阶段之后,不与初筛混合。
实现任务
→ 取数阶段
├─ 工具取数
└─ Agent 取数 → 多次查询 → 初筛整理
→ 实现 Agent 数据取舍
→ 候选产出
所有候选产出在实现 Agent 区结束,随后按真实批次汇入 script_multipath_evaluator。评审只提供候选比较和建议;最终采用、暂存或未采用由 script_build_multipath_decision 与 Branch 状态共同展示。合并后的主脚本再由 script_evaluator 做整体评审。
取数操作按运行时间投影为单项、依次、并行、混合或先后未确认。没有时间重叠时不会仅因为存在多个 Agent 就显示为并行。
script_build_data_decision 只表示实现 Agent 对数据的采用和排除。script_build_multipath_decision 只表示主 Agent 对一批候选结果的综合决策。script_build_domain_info 是独立累加的领域事实;即使来源方案后来未采用,已核实事实仍然存在。script_build_event/body 只补充评审和运行活动,不覆盖业务表事实。script_build_round.multipath_plan 是当前保存值,不描述成完整规划历史。branch_id=0 数据,不描述成任何一轮结束时的精确快照。data_decision 记录不会被解释成主 Agent 决策。完整数据优先级和禁止解释见 DATA_SOURCE_CONTRACT.md。
LocalDatabaseProvider
↓
ScriptBuildRepository(MySQL 会话级只读)
↓
Business Bundle
├─ RuntimeEventProjector(只负责编排)
│ └─ RuntimeEventIndex(一次建立顺序、父子、scope、actor 和轮次索引)
│ ├─ RetrievalEventProjector
│ ├─ EvaluationEventProjector + EvaluationReportParser
│ └─ MainAgentDecisionProjector
│ ├─ ObjectiveDecisionProjector
│ ├─ RoundGoalDecisionProjector
│ └─ ImplementationPlanDecisionProjector
├─ CreativeEventProjector
├─ AgentDecisionProjector
└─ Artifact Projection
↓
ExecutionViewV8
↓
React Flow 横向发散—收敛画布
主接口只返回业务摘要和详情引用。完整事件正文、候选快照、数据库行和技术字段在点击卡片后按需读取。最终主脚本使用单独的只读三表查询,不会为打开脚本表重复加载轮次、分支、决策和事件。
主 Agent 前三阶段分别由专用来源投影器还原事实,再统一投影为 AgentDecisionProjection。Direction、Tradeoff、Evaluation、Creative 共用一个卡片与详情协议:画布只展示一个主结论和最多三个摘要,完整输入关系、理由、评审对照和技术证据进入 Inspector。
评审报告只通过一个带版本号的解析器进入业务区,解析失败不会把原始 Markdown 倾倒给业务用户。Agent 派发任务和当前版本规则通过独立懒加载接口查看,并明确标注当前规则不是历史运行 Prompt 快照。
产品信息架构、视觉与交互规范、数据真实性边界分别见 PRODUCT.md、DESIGN.md 和 DATA_SOURCE_CONTRACT.md。
cd aiddit/pattern/patter_from_global_and_build/visualization/backend
python3 -m venv .venv
source .venv/bin/activate
PIP_CACHE_DIR=../.cache/pip pip install -r requirements.txt
PATTERN_DB_HOST_OVERRIDE=192.168.202.204 uvicorn app.main:app --host 127.0.0.1 --port 8788
cd aiddit/pattern/patter_from_global_and_build/visualization/frontend
npm_config_cache=../.cache/npm npm install
NEXT_PUBLIC_API_BASE=http://127.0.0.1:8788 npm run dev
打开 http://127.0.0.1:3008。
| 变量 | 默认值 | 作用 |
|---|---|---|
PATTERN_RUNTIME_DIR |
visualization 的父业务目录 | 定位父项目的 db_manager.py 和 models.py |
PATTERN_DB_HOST_OVERRIDE |
空 | 只在 visualization 的独立连接池中替换 DB host |
VISUALIZATION_CORS_ORIGINS |
localhost/127.0.0.1:3008 |
CORS 白名单 |
NEXT_PUBLIC_API_BASE |
http://127.0.0.1:8788 |
前端访问的可视化后端 |
无论是否配置 Host Override,后端都创建独立连接池,并在每个物理连接上执行 SET SESSION TRANSACTION READ ONLY。Repository 不包含新增、更新、删除、flush 或 commit。
GET /api/health
GET /api/capabilities
GET /api/script-builds?limit=30&status=
GET /api/script-builds/{id}/execution-view
GET /api/script-builds/{id}/rounds/{round_index}
GET /api/script-builds/{id}/activities/{activity_id}
GET /api/script-builds/{id}/card-data/{detail_ref}
GET /api/script-builds/{id}/inspector-view/{detail_ref}
GET /api/script-builds/{id}/artifacts/{snapshot_ref}
GET /api/script-builds/{id}/decision-prompts/{prompt_ref}
真实 ID 读取失败返回 404/503,不切换为示例数据。生产后端没有示例数据接口、远程旧接口适配器或原始执行日志接口。
真实 Run 的数据来源回归可在后端目录执行:
.venv/bin/python scripts/validate_source_inspector.py --runs 422 443 444 446 --workers 8
cd backend && .venv/bin/pytest -q
cd ../frontend && npm test && npm run typecheck && npm run build
PLAYWRIGHT_USE_SYSTEM_CHROME=1 npm run test:e2e
所有缓存、截图和测试产物必须留在 visualization/.cache、visualization/exports 或 visualization/test-artifacts。实现不得修改父业务代码或旧 Demo。