Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

42 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

QVerisFlow

ๅŸบไบŽ LangGraph ็š„ๅคšๆ™บ่ƒฝไฝ“ๆก†ๆžถ๏ผŒๆ”ฏๆŒๅฏน่ฏๅผๅทฅไฝœๆตๆž„ๅปบใ€ๅฏ่ง†ๅŒ–็”ปๅธƒ็ผ–่พ‘ใ€ๆ™บ่ƒฝ Agent ็”Ÿๆˆๅ’Œๅฎžๆ—ถๆ‰ง่กŒ็›‘ๆŽงใ€‚

ๆ ธๅฟƒ็‰นๆ€ง

  • ๅฏน่ฏๅผๅทฅไฝœๆตๆž„ๅปบ - ้€š่ฟ‡่‡ช็„ถ่ฏญ่จ€ๅฏน่ฏๅˆ›ๅปบใ€ไฟฎๆ”นใ€่ฟญไปฃๅทฅไฝœๆต
  • ๅฏ่ง†ๅŒ– Web UI - ็ŽฐไปฃๅŒ–็š„ React ็•Œ้ข๏ผŒๆ”ฏๆŒ็”ปๅธƒๆ‹–ๆ‹ฝใ€่Š‚็‚น็ผ–่พ‘ใ€ๅฎžๆ—ถ็Šถๆ€ๅฑ•็คบ
  • ๆ™บ่ƒฝ Agent ็”Ÿๆˆ - Meta Agent ่‡ชๅŠจๅˆ†ๆžไปปๅŠกๅนถ็”Ÿๆˆๆœ€ไผ˜ Agent ๅฎšไน‰
  • ๅคšๆจกๅž‹ๆ”ฏๆŒ - ็ตๆดป้…็ฝฎๅคš็ง LLM๏ผˆQwenใ€DeepSeekใ€GPTใ€GLM ็ญ‰๏ผ‰
  • ๅฎžๆ—ถๆ‰ง่กŒ็›‘ๆŽง - WebSocket ๅฎžๆ—ถๆŽจ้€ๆ‰ง่กŒ่ฟ›ๅบฆ๏ผŒๆ”ฏๆŒๆš‚ๅœใ€ๆขๅคใ€ๅนฒ้ข„
  • QVeris ้›†ๆˆ - ๆ— ็ผๅฏนๆŽฅ QVeris ็ปŸไธ€ๆ•ฐๆฎๅ’Œๅทฅๅ…ทๅฑ‚
  • ไธ‰ๅฑ‚้ชŒ่ฏๆœบๅˆถ - ่ง„ๅˆ™้ชŒ่ฏ + LLM ่ฏ„ๅˆค + ็ป„ๅˆ้ชŒ่ฏ

ๆžถๆž„ๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       Web UI ๅฑ‚                              โ”‚
โ”‚          React + ReactFlow + WebSocket + Zustand            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                       Web API ๅฑ‚                             โ”‚
โ”‚              FastAPI + WebSocket Handlers                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                       ๆผ”ๅŒ–ๅฑ‚ (Evolution)                     โ”‚
โ”‚  DialogueAgent | MetaAgent | ConversationalBuilder          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                       ็ผ–ๆŽ’ๅฑ‚ (Orchestration)                 โ”‚
โ”‚              SmartRouter | WorkflowEngine                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                       ๆ ธๅฟƒๅฑ‚ (Core)                          โ”‚
โ”‚        BaseAgent | AgentGraph | Verification                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                       ๅฎšไน‰ๅฑ‚ (Definitions)                   โ”‚
โ”‚   AgentDefinition | ToolDefinition | WorkflowDefinition     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      ๅŸบ็ก€่ฎพๆ–ฝๅฑ‚                              โ”‚
โ”‚     PostgreSQL | Redis | QVeris API | Multi-LLM             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฟซ้€Ÿๅผ€ๅง‹

1. ๅฎ‰่ฃ…ไพ่ต–

# ไฝฟ็”จ uv๏ผˆๆŽจ่๏ผ‰
uv sync

# ๆˆ–ไฝฟ็”จ pip
pip install -e ".[web,dev]"

2. ้…็ฝฎๆจกๅž‹

็ผ–่พ‘ config/app_config.yaml ้…็ฝฎ LLM๏ผš

models:
  qwen-plus:
    api_key: "your-api-key"
    base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
    model_name: "qwen-plus"
    max_tokens: 8000
    temperature: 0.3

model_selection:
  default: "qwen-plus"

3. ๅฏๅŠจ Web UI

# ๅฏๅŠจๅŽ็ซฏๆœๅŠก
uv run python -m src.web

# ๅฏๅŠจๅ‰็ซฏ๏ผˆๆ–ฐ็ปˆ็ซฏ๏ผ‰
cd web-ui && npm install && npm run dev

่ฎฟ้—ฎ http://localhost:5173 ๅผ€ๅง‹ๆž„ๅปบๅทฅไฝœๆตใ€‚

ไฝฟ็”จๆ–นๅผ

ๆ–นๅผไธ€๏ผšWeb UI ๅฏน่ฏๅผๆž„ๅปบ๏ผˆๆŽจ่๏ผ‰

  1. ๆ‰“ๅผ€ Web UI
  2. ๅœจๅฏน่ฏๆก†ไธญๆ่ฟฐไฝ ็š„้œ€ๆฑ‚๏ผŒไพ‹ๅฆ‚๏ผš
    • "ๅธฎๆˆ‘ๅˆ›ๅปบไธ€ไธชๅˆ†ๆž่‹ฑไผŸ่พพ่‚ก็ฅจ็š„ๅทฅไฝœๆต"
    • "ๆˆ‘้œ€่ฆไธ€ไธชๅคš็ปดๅบฆ็š„ๆŠ•่ต„ๅˆ†ๆž็ณป็ปŸ"
  3. ็ณป็ปŸไผš่‡ชๅŠจ็”Ÿๆˆๅทฅไฝœๆต่ง„ๅˆ’
  4. ็กฎ่ฎคๅŽ่‡ชๅŠจ็”Ÿๆˆ Agent ๅฎšไน‰
  5. ๅœจ็”ปๅธƒไธŠๆŸฅ็œ‹ๅ’Œ็ผ–่พ‘ๅทฅไฝœๆต
  6. ็‚นๅ‡ปๆ‰ง่กŒ๏ผŒๅฎžๆ—ถ็›‘ๆŽง่ฟ›ๅบฆ

ๆ–นๅผไบŒ๏ผšๅ‘ฝไปค่กŒไบคไบ’ๅผๆž„ๅปบ

uv run python examples/interactive_builder_test.py

ๆ–นๅผไธ‰๏ผšไปฃ็ ๅฎšไน‰

from src.definitions import AgentDefinition, WorkflowDefinition
from src.orchestration import WorkflowEngine

# ๅฎšไน‰ Agent
agent_def = AgentDefinition(
    agent_id="data_collector",
    name="ๆ•ฐๆฎๆ”ถ้›†ๅ™จ",
    display_name="ๅธ‚ๅœบๆ•ฐๆฎ้‡‡้›†",
    description="ๆ”ถ้›†ๅ’Œๆ•ด็†ๅธ‚ๅœบๆ•ฐๆฎ",
    # ... ๅ…ถไป–้…็ฝฎ
)

# ๆ‰ง่กŒๅทฅไฝœๆต
engine = WorkflowEngine()
result = await engine.execute(workflow_definition)

ๆ–นๅผๅ››๏ผšYAML ้…็ฝฎ

# agents/financial_analyst.yaml
agent_id: financial_analyst
name: ้‡‘่žๅˆ†ๆžๅธˆ
display_name: ไธ“ไธš้‡‘่žๅˆ†ๆžๅธˆ
description: ๅˆ†ๆž่‚ก็ฅจๅนถ็ป™ๅ‡บๆŠ•่ต„ๅปบ่ฎฎ

background_instruction:
  role_description: ไฝ ๆ˜ฏไธ€ไฝ่ต„ๆทฑ้‡‘่žๅˆ†ๆžๅธˆ
  core_capability: ๅˆ†ๆžๅธ‚ๅœบๆ•ฐๆฎๅนถ็ป™ๅ‡บไธ“ไธšๅปบ่ฎฎ

llm_config:
  model_name: qwen-plus
  temperature: 0.3
  max_tokens: 4000

tool_references:
  - tool_id: qveris_search_tools
  - tool_id: qveris_execute_tool

ๆ ธๅฟƒๆจกๅ—

ๆผ”ๅŒ–ๅฑ‚ (Evolution)

ๆจกๅ— ่ฏดๆ˜Ž
DialogueAgent ๅฏน่ฏไปฃ็†๏ผŒ็†่งฃ็”จๆˆทๆ„ๅ›พๅนถๆ‰ง่กŒๅทฅไฝœๆตๆ“ไฝœ
MetaAgent ๅ…ƒไปฃ็†๏ผŒ่‡ชๅŠจ็”Ÿๆˆ Agent ๅฎšไน‰ๅ’Œๅทฅไฝœๆต
ConversationalBuilder ๅฏน่ฏๅผๅทฅไฝœๆตๆž„ๅปบๅ™จ๏ผŒ็ฎก็†ๆž„ๅปบ็Šถๆ€
WorkflowOperationTools ๅทฅไฝœๆตๆ“ไฝœๅทฅๅ…ท้›†๏ผˆๅˆ›ๅปบใ€่ฟญไปฃใ€ๆ‰ง่กŒ็ญ‰๏ผ‰

็ผ–ๆŽ’ๅฑ‚ (Orchestration)

ๆจกๅ— ่ฏดๆ˜Ž
WorkflowEngine ๅทฅไฝœๆตๆ‰ง่กŒๅผ•ๆ“Ž๏ผŒๆ”ฏๆŒๆตๅผๆ‰ง่กŒๅ’Œๅฎžๆ—ถไบ‹ไปถ
SmartRouter ๆ™บ่ƒฝ่ทฏ็”ฑ๏ผŒๆ นๆฎไปปๅŠก้€‰ๆ‹ฉๆœ€ไฝณ Agent

ๆ ธๅฟƒๅฑ‚ (Core)

ๆจกๅ— ่ฏดๆ˜Ž
BaseAgent Agent ๅŸบ็ฑป๏ผŒๅฐ่ฃ… LangGraph ็Šถๆ€ๅ›พ
AgentGraph Agent ๆ‰ง่กŒๅ›พๆž„ๅปบๅ™จ
ContextManager ไธŠไธ‹ๆ–‡็ฎก็†๏ผŒ่‡ชๅŠจๆ”ถ้›†ๅ’Œๆ•ด็†ไฟกๆฏ

Web ๅฑ‚

ๆจกๅ— ่ฏดๆ˜Ž
WebSocketHandler WebSocket ๆถˆๆฏๅค„็†ๅ’Œไผš่ฏ็ฎก็†
SessionManager ็”จๆˆทไผš่ฏๅ’Œ็Šถๆ€ๆŒไน…ๅŒ–

้…็ฝฎ่ฏดๆ˜Ž

ๅคšๆจกๅž‹้…็ฝฎ

ๆ”ฏๆŒๅŒๆ—ถ้…็ฝฎๅคšไธช LLM ๆไพ›ๅ•†๏ผš

models:
  qwen-plus:           # ้€šไน‰ๅƒ้—ฎ
  deepseek-v3:         # DeepSeek
  gpt-5.2:             # OpenAI (via OpenRouter)
  glm-4.7:             # ๆ™บ่ฐฑ GLM
  kimi-k2.5:           # Moonshot

model_selection:
  default: "qwen-plus"
  complexity_mapping:
    simple: "qwen-plus"
    medium: "deepseek-v3"
    complex: "deepseek-r1"

QVeris ้›†ๆˆ

qveris:
  enabled: true
  api_key: ${QVERIS_API_KEY}
  base_url: "https://qveris.ai/api/v1"

้กน็›ฎ็ป“ๆž„

agent_framework/
โ”œโ”€โ”€ config/              # ้…็ฝฎๆ–‡ไปถ
โ”‚   โ””โ”€โ”€ app_config.yaml  # ไธป้…็ฝฎ๏ผˆๆจกๅž‹ใ€QVeris็ญ‰๏ผ‰
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ core/           # ๆ ธๅฟƒ Agent ๅฎž็Žฐ
โ”‚   โ”œโ”€โ”€ definitions/    # ๅฎšไน‰ๆจกๅž‹
โ”‚   โ”œโ”€โ”€ evolution/      # ๆ™บ่ƒฝๆผ”ๅŒ–๏ผˆๅฏน่ฏๆž„ๅปบใ€Meta Agent๏ผ‰
โ”‚   โ”œโ”€โ”€ orchestration/  # ๅทฅไฝœๆต็ผ–ๆŽ’
โ”‚   โ”œโ”€โ”€ tools/          # ๅทฅๅ…ท็ณป็ปŸ
โ”‚   โ”œโ”€โ”€ verification/   # ้ชŒ่ฏๅฑ‚
โ”‚   โ”œโ”€โ”€ web/            # Web API ๅ’Œ WebSocket
โ”‚   โ””โ”€โ”€ workspace/      # ๅทฅไฝœ็ฉบ้—ด็ฎก็†
โ”œโ”€โ”€ web-ui/             # React ๅ‰็ซฏ
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/ # UI ็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/      # React Hooks
โ”‚   โ”‚   โ”œโ”€โ”€ stores/     # Zustand ็Šถๆ€็ฎก็†
โ”‚   โ”‚   โ””โ”€โ”€ services/   # WebSocket ๆœๅŠก
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ examples/           # ็คบไพ‹ไปฃ็ 
โ”œโ”€โ”€ tests/              # ๆต‹่ฏ•็”จไพ‹
โ””โ”€โ”€ docs/               # ๆ–‡ๆกฃ

็คบไพ‹

่ฟ่กŒๅทฒๆœ‰ๅทฅไฝœๆต

uv run python examples/run_workflow.py \
  workspaces/demo/workflow.json \
  workspaces/demo/checkpoint.json

Meta Agent ่‡ชๅŠจ็”Ÿๆˆ

uv run python examples/meta_agent_full_test.py

Web UI ๆต‹่ฏ•

uv run python examples/web_ui_test.py

ๆ–‡ๆกฃ

่ฏฆ็ป†ๆ–‡ๆกฃไฝไบŽ docs/ ็›ฎๅฝ•๏ผš

  • overall_design/00_overview.md - ๆก†ๆžถๆฆ‚่งˆ
  • overall_design/01_core_agent.md - ๆ ธๅฟƒ Agent ่ฎพ่ฎก
  • overall_design/07_evolution.md - ๆ™บ่ƒฝๆผ”ๅŒ–ๆœบๅˆถ
  • AGENT_FRAMEWORK_IMPLEMENTATION_SUMMARY.md - ๅฎž็Žฐๆ€ป็ป“

ๅผ€ๅ‘

# ๅฎ‰่ฃ…ๅผ€ๅ‘ไพ่ต–
uv sync --extra dev --extra test

# ่ฟ่กŒๆต‹่ฏ•
uv run pytest

# ไปฃ็ ๆ ผๅผๅŒ–
uv run black src/ tests/
uv run ruff check src/ tests/ --fix

ๆŠ€ๆœฏๆ ˆ

ๅŽ็ซฏ

  • Python 3.11+
  • LangGraph / LangChain
  • FastAPI + WebSocket
  • SQLAlchemy + PostgreSQL
  • Pydantic v2

ๅ‰็ซฏ

  • React 18 + TypeScript
  • ReactFlow๏ผˆๅทฅไฝœๆต็”ปๅธƒ๏ผ‰
  • Zustand๏ผˆ็Šถๆ€็ฎก็†๏ผ‰
  • Tailwind CSS
  • WebSocket ๅฎžๆ—ถ้€šไฟก

่ฎธๅฏ่ฏ

Apache License 2.0

About

Automatic multi-agent workflow generation, fully integrated with QVeris unified data and tool layer

Resources

Stars

689 stars

Watchers

12 watching

Forks

Releases

Packages

Contributors

Languages