xueyiming f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
..
README.md f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
__init__.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
agent.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
context.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
demand_context.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
gates.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
graph.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
models.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
observability.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
prompts.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
providers.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
runner.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
runtime.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
service.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
state.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
test_entry.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen
tools.py f1b2c0c667 增加寻找Agent v2版本 vor 6 Tagen

README.md

find_agent_v2

find_agent_v2 是完全自包含的新实现。它不导入旧寻找 Agent 的提示词、工具、provider、画像 归一化、门禁、数据服务或日志模块,也不共享运行、搜索、候选或证据表。

结构

Python 外循环(最多 N 个业务轮次)
  └─ 单轮 DAG
      planner → search → evidence → evaluator → END
  └─ 宿主代码校验并写终态
  └─ report(只读)

每个 ReAct 节点只注册本阶段工具;业务重数据在独立数据库表中,内存 state 只保存轮次、阶段、 计划和小型快照。

可视化

v2 只使用 obagent,不写项目原有的 logs/*.jsonl、本地可视化产物或 OSS 日志:

observe.run(project=find_agent_v2)
  ├─ graph(第 1 轮)
  │   ├─ planner
  │   ├─ search
  │   ├─ evidence
  │   └─ evaluator
  ├─ graph(第 2 轮)
  │   └─ ...
  └─ report

节点通过固定 InputSlot 声明输入,ctx.declare() 的返回值直接作为真实模型输入。自研 ReAct 运行时的完整 LLM 输入/输出、usage、工具调用和消息链会汇总到各节点稳定的 react stage。 find_agent_v2_run.obagent_run_uid 保存观测台深链 UID。

配置环境变量:OBAGENT_ENDPOINTOBAGENT_API_KEYOBAGENT_WAL_DIROBAGENT_ENABLEDOBAGENT_TIMEOUTOBAGENT_TIMEOUT_PER_OP

独立表

  • find_agent_v2_run
  • find_agent_v2_round
  • find_agent_v2_search
  • find_agent_v2_candidate
  • find_agent_v2_evidence

迁移:

.venv/bin/alembic upgrade head

调用

from find_agent_v2 import create_find_agent_v2_run, run_find_agent_v2

user_input = "...完整需求和 reference_videos..."
run_id = create_find_agent_v2_run(
    user_input=user_input,
    demand_word="手机防诈骗",
    demand_grade_id=123,
)
result = run_find_agent_v2(user_input, run_id=run_id)

run_id 必须来自 find_agent_v2_run,不会隐式接受或写入旧 video_discovery_run

本地数据库准备好需求、视频和点位后,可直接创建一条测试运行:

.venv/bin/python -m find_agent_v2.test_entry

该命令默认只准备 find_agent_v2_run,不会调用模型。真正执行时显式传入:

.venv/bin/python -m find_agent_v2.test_entry --execute

已准备的任务可按 run_id 恢复执行:

.venv/bin/python -m find_agent_v2.test_entry \
  --existing-run-id local-test-... --execute

复用边界

新包拥有自己的外部接口客户端、响应解析、年龄画像标准化、门禁和提示词。需求测试上下文只读取 通用数据模型;搜索结果、详情、画像和评估结果均由 FindAgentV2Service 写入独立表。