Skip to content

Add software exploration topology result layer#1546

Draft
liangsalt wants to merge 1 commit into
huangruiteng:mainfrom
liangsalt:software-structure-explore-topology
Draft

Add software exploration topology result layer#1546
liangsalt wants to merge 1 commit into
huangruiteng:mainfrom
liangsalt:software-structure-explore-topology

Conversation

@liangsalt

Copy link
Copy Markdown
Contributor

Summary

  • add loopx explore commands for recording software exploration nodes, edges, and findings
  • project exploration results into Feishu/Lark Base tables with Nodes, Edges, and Findings
  • materialize parent-node relationships as topology edges for structure-oriented exploration views
  • add public-safe result logging, Lark sync, result-card generation, docs, and smoke coverage

Validation

  • python examples\explore-result-layer-smoke.py
  • python -m compileall -q loopx\capabilities\explore loopx\capabilities\lark\explore_results.py loopx\cli_commands\explore.py
  • python -m loopx.cli --format json explore schema

@huangruiteng

Copy link
Copy Markdown
Owner

架构 review / merge guidance:我建议把这个 PR 按「explore 核心输入层」和「presentation 展示层」拆清楚,而不是把 explore 整体归到展示面。

短期可合入路径

  1. loopx/capabilities/explore/result_log.py 这部分建议先保留在 explore capability 下,不搬进 loopx/presentation/

    • 这里记录的是 node / edge / finding / blocked frontier,是后续 vision、replan、successor todo、user gate 的结构化证据输入。
    • 它不只是 operator graph 的数据源;如果放进 presentation,会把“研究证据”误导成“展示产物”。
    • 中长期如果要再归位,可以考虑 loopx/control_plane/explore/ 或一个更明确的 read-model boundary,但这个 PR 不需要先做大搬家。
  2. Lark/Feishu 展示代码建议改到刚合入的 presentation sink 路径:

    • loopx/capabilities/lark/explore_results.py
    • 移到 loopx/presentation/sinks/lark/explore_results.py
    • loopx/cli_commands/explore.py 改 import 到 presentation sink。
    • 如有必要,可以在 loopx/capabilities/lark 留非常薄的 facade,但不要让新的展示实现继续沉在 capabilities/lark 下。
  3. 文档措辞建议同步收紧:

    • Explore capability:负责沉淀结构化探索证据。
    • Presentation:负责把 public-safe explore projection 渲染成 graph / Lark Base / card。
    • Value connectors:仍然是外部信号输入/权限/connector 边界,不要和这个展示 sink 混在一起。
  4. 做完上面的短期归位后,我认为这个 PR 可以作为 v0 合入,前提是继续保留现在的安全边界和验证:

    • python3 examples/explore-result-layer-smoke.py
    • python3 examples/lark-capability-layout-smoke.py 或等价 import/layout smoke
    • python3 -m loopx.cli --format json explore schema
    • python3 -m compileall -q loopx/capabilities/explore loopx/presentation/sinks/lark loopx/cli_commands/explore.py
    • public/private boundary scan

中期建议:把 explore 接进 vision / replan,而不是只做 graph

我更看重的链路是:

Vision
  当前长期目标、成功标准、核心假设、边界

Explore
  agent/connector/调研过程沉淀 node、edge、finding、blocked frontier

Explore briefing
  只提炼和当前 replan 相关的 confirmed/refuted/blocker/frontier

Replan
  对照 vision 判断:继续、砍掉 dead end、生成 successor todo、是否 user gate、是否更新 vision checkpoint

Todo / quota / status
  把 replan 结果写回执行控制面

建议后续加一个克制接口,而不是马上改 runtime:

loopx explore summary --goal-id <id> --agent-id <agent> --for-replan

输出一个 agent/lane scoped 的薄 briefing,例如:

vision_anchor:
  objective:
  current_success_criteria:
  current_assumptions:

explore_delta:
  confirmed_findings:
  refuted_findings:
  blocked_frontier:
  new_edges:
  stale_or_dead_end_nodes:

replan_hints:
  continue:
  replace_todo:
  successor_todo:
  ask_user:
  update_vision:

这里的关键不是“总结所有 explore 结果”,而是对照 vision 做差异判断:哪些 finding 支持当前 vision,哪些推翻假设,哪些 blocked frontier 需要用户/connector/权限/新 agent,哪些 todo 已经过时,是否需要 vision checkpoint。

也要保持 agent-id 边界:当前 agent/lane 的 finding 可以详细;其他 agent 只给 top todo、blocker、handoff 摘要;全局 graph 只给和当前 lane 有边关系的节点。否则 replan 会被别的 lane 的探索噪声拖走。

最终 replan 不应该只在聊天里分析,它应该写回:关闭 stale todo、新增 successor todo、写 replan rationale、必要时写 vision checkpoint,并记录 last_explore_event_cursor 或等价 checkpoint,避免下次重复总结同一批 finding。

一句话:Explore 负责把探索过程沉淀成结构化证据;vision 负责给证据提供评价坐标;replan 负责把证据转成下一轮 todo、gate、handoff 和 vision checkpoint。Graph/Lark board 很适合 operator 看,但 explore briefing -> replan 才是真正提升长期执行质量的地方。

@liangsalt liangsalt marked this pull request as draft July 6, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants