deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
AI Agent 团队的软件项目生命周期编排引擎
A local lifecycle orchestrator for AI agent teams
agentflow 是一个本地优先、MCP 原生、git/worktree-aware 的 AI agent 项目生命周期编排引擎。
它把项目初始化、任务拆解、分支执行、review handoff 和项目记忆串成一条真实工作流:
project_init 把本地代码仓库绑定到 namespace运行形态:
| 概念 | 含义 |
|---|---|
namespace |
一个项目的隔离边界 |
DAG |
一条 branch-scoped 的工作流,通常对应一个功能分支 |
task |
一个有状态、有依赖、有审查流转的工作单元 |
worker |
执行任务的角色,跨 DAG 共享 |
reviewer |
读取提交元数据并做 pass / rework 决策的角色 |
leader |
负责 phase 判断、派发、监控、阻塞汇报、完成收口 |
除了任务状态,agentflow 还内建项目记忆面:
doc_*:项目文档worker_handbook_* / find_knowledge / find_pitfalls:Worker 经验库worker_diary_*:Worker 工作日记leader_diary_*:Leader 项目日记项目不是直接从“建 task”开始,而是按 phase 推进:
setup -> shape -> plan -> execute -> stuck -> done
| Phase | 含义 |
|---|---|
setup |
还没有完成项目初始化 |
shape |
正在确认最终形态、范围和角色分工 |
plan |
已有 worker / namespace,但还没拆出 DAG / task |
execute |
已有任务主链,正在 dispatch / 实现 / review |
stuck |
当前没有可派发任务,也没有活跃任务,需要人工处理阻塞 |
done |
当前 DAG / 项目任务已完成 |
高层入口:
project_next_steps:看项目当前在哪个 phase、下一步该做什么leader_tick:让 leader 默认 BT 按 phase 做一次调度lifecycle_tick:在一条调用里串 leader -> worker -> reviewer 的完整主链这是当前系统最重要的运行约束之一。
project_init 是推荐入口project_init 会:
.claude/agentflow-git.md.claude/agentflow-git.md 是 repo-local 的执行规则文件,约束 worker 如何在 worktree 中工作、如何提交、哪些动作被禁止。
每个 DAG 绑定一个 feature branch。DAG 不是纯逻辑分组,而是和 git 分支直接关联的执行单元。
task 在自己的 worktree 中执行,而不是直接在 repo root 改文件。
典型约束:
worktree_pathstart / resume 会准备 task 的 git runtimegit_status / worktree_get 用来检查当前 git/worktree 状态submit 是带交付契约的submit 不只是一次状态转换。对 git-backed task,提交前需要满足:
review.commitreview.diffreviewer 围绕这些 review metadata 做 pass / rework,而不是脱离 git 上下文推进状态。
trees/leader-default.json 的主线语义:
refresh_phase
-> setup_actions | shape_actions | plan_actions
-> execute: dispatch_task | monitor_tasks
-> stuck: report_stuck
-> done: report_done
leader 负责判断项目处于哪个 phase,并按 phase 决定下一步动作。
trees/worker-default.json 的默认链路:
doc_search_prepare
-> task_get_confirm
-> enter_worktree
-> implement_code
-> git_commit_changes
-> doc_write_record
-> diary_write_entry
-> task_submit_for_review
这条链路明确表达:worker 的交付不是“改完代码就算结束”,而是要连同 commit、文档、日记和 review handoff 一起完成。
trees/reviewer-default.json 的默认链路:
fetch_work_diff
-> review_decide
-> task_review_pass | task_review_rework
reviewer 基于 review.commit / review.diff 决策,而不是脱离 git 上下文做抽象状态推进。
README 不再硬编码工具数量;当前工具面请以 pkg/server/mcp.go 为准。
更适合按能力域理解:
project_initproject_next_stepsnamespace_createnamespace_getnamespace_listnamespace_deletedag_create, dag_get, dag_list, dag_update, dag_report, dag_flowcharttask_create, task_get, task_list, task_query, task_history, task_create_batch, task_transitionworker_register, worker_get, worker_list, worker_update, worker_status, worker_prompt_getleader_ticklifecycle_tickbt_list_treesbt_show_treebt_validate_treebt_tickgit_statusworktree_getgit.*review.commit / review.diffdoc_write, doc_get, doc_list, doc_search, doc_deleteworker_handbook_write, worker_handbook_get, worker_handbook_listfind_knowledge, find_pitfallsworker_diary_write, worker_diary_get, worker_diary_listleader_diary_write, leader_diary_get, leader_diary_listproject_next_tasksproject_blockersproject_reportflow_pingagentflow 可以把任务与分支状态单向投影到 agent-hub 控制平面,让多机团队看到同一张任务大盘。三条铁律:
agentflow 的 SQLite 永远是唯一真源。| 工具 | 投影内容 | 回填的 note 键 |
|---|---|---|
task_create |
任务行 8 字段 | hub_note |
task_prepare_start |
任务行(带 branch/head_sha)+ 分支上报(bind_type=task) |
hub_note + hub_branch_note |
task_transition |
任务行;submit 起带 reviewer 将看到的 review.commit |
hub_note |
task_create_batch |
每个任务各一条 | 每个 item 的 hub_note |
note 形如:
hub_task_sync_ok
hub_task_sync_skipped: no login token / business_code ← 没配置,什么都没发
hub_task_sync_disabled: HUB_SYNC/HUB_ENABLED off ← 被 kill switch 关掉
hub_task_sync_failed: status 401 forbidden ← 试过了,失败了;本地不受影响
// 1) 登录取 JWT(两段式设备码;JWT 落 ~/.agent-hub/config.json)
// hub_login({}) // → code + verification_url
// 浏览器打开 verification_url 并点 Approve
// hub_login({ "code": "<code>" }) // → status=pending_approval 就再调一次;ok 即落盘
// hub_list_teams({}) // → 发现你的 4 位 code(需 JWT;只有 API key 会 skipped)
// 2) 绑定团队(唯一产品真源:namespace metadata)
// hub_bind_team({ "namespace_id": "insighttutor", "business_code": "z8gw" })
// 3) 提供凭据(env 优先;也可放 {workdir}/.mycompany/hub-client.json)
// HUB_TOKEN=<Hub JWT> # 推荐;只有 API key 时部分能力不可用
// HUB_BASE_URL=https://hub.stifer.xyz
关闭方式(任一):HUB_DISABLED=1、HUB_SYNC=0、HUB_ENABLED=false。kill switch 永远优先于凭据。
~/.agent-hub/config.json 是 JWT-only:它永远不提供 team code(否则同机两个 namespace 会争抢同一个团队)。team code 只可能来自 env / namespace metadata / workdir 文件。hub_login(两段式设备码登录)、hub_list_teams(发现团队 code,需 JWT)、hub_status、hub_bind_team。登录成功后 JWT 落 ~/.agent-hub/config.json,且不会发明 team code。docs/SYNC_CONTRACT.md,逐面完成度矩阵见 docs/HUB_ALIGNMENT.md。agentflow 提供多种宿主集成方案,推荐优先使用 DeepSeek Harness (DSH) 原生插件体验完整的多 Agent 协同与 4D 动态画布能力;同时也支持作为独立 MCP 服务接入 Claude Code、Codex 等终端工具,或连接 Agent Hub 进行多机分布式团队协同。
通过 DSH 插件体系可实现核心状态机、技能与交互式拓扑画布的开箱即用:
@stifer/dsh-agentflow,点击一键安装;dsh plugin --profile web add @stifer/dsh-agentflow
<dshHome>/profiles/web/cordis.patch.yml 中追加):- insert:
- id: agentflow
name: '@stifer/dsh-agentflow'
/agentflow 即可唤起引导;mcp__agentflow__* (61+ 工具);适用于基于独立二进制或 CLI 终端的代码协作环境:
irm https://raw.githubusercontent.com/toustifer/agentflow/master/scripts/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/toustifer/agentflow/master/scripts/install.sh | bash
go build -o agentflow ./cmd/agentflow/
.claude.json):{
"mcpServers": {
"agentflow": {
"command": "agentflow",
"args": ["stdio"],
"type": "stdio"
}
}
}
codex.json):{
"mcpServers": {
"agentflow": {
"command": "agentflow",
"args": ["stdio"]
}
}
}
搭配 hub.stifer.xyz 控制平面,解锁跨机器、跨座席的多智能体团队协同能力:
hub_login():OAuth 浏览器一键授权,快速获取协同凭证;hub_bind_team(namespace_id, business_code):将本地工作区 namespace 绑定至团队专属 4 位业务码;无论采用哪种安装方式,推荐的标准项目启动生命周期流(Happy Path):
project_init:绑定代码仓库与 namespaceworker_register:登记参与团队的 Worker 角色dag_create:基于需求分支创建 DAG 工作流task_create / task_create_batch:拆解创建带依赖的任务project_next_steps:评估阶段并获取行动建议leader_tick:启动 Leader 行为树推进调度与审查极简生命周期流图:
project_init
-> worker_register
-> dag_create
-> task_create_batch
-> leader_tick
-> worker-default
-> reviewer-default
-> leader_tick(done)
主路径是 MCP stdio:
./agentflow stdio
还支持:
agentflow file <path>:读取单个 JSON-RPC 文件请求127.0.0.1:9600 的健康接口和基础运行壳但对 Claude Code / MCP 集成来说,stdio 才是核心运行方式。
BT-backed lifecycle 依赖 Python sidecar。Go server 会在需要时拉起 python -m bt_service。
没有 Python 时:
完整项目工作流强依赖 git:
project_init 会处理 repo 绑定可通过环境变量覆盖数据库位置:
AGENTFLOW_DB_PATH=/path/to/agentflow.db
如果未设置,默认会在系统临时目录下使用 agentflow.db。
go test ./pkg/...
python -m pytest bt_service/tests/ -x -vv
go run ./smoke/mcp_comm_check.go
这个 smoke 会真实验证:
cmd/
agentflow/ Go entrypoint (`stdio`, `file`, HTTP)
pkg/
engine/ 状态机、DAG、Worker、SQLite、docs/diaries/handbooks
server/ MCP handler、lifecycle、git/worktree、BT provider bridge
bt_service/
server/ Python BT action / transport / clients
tests/ Python BT sidecar tests
smoke/
mcp_comm_check.go 端到端协议 smoke
trees/
leader-default.json
worker-default.json
reviewer-default.json
skills/
agentflow/
agents/
agentflow-leader/ DSH preset:Leader(不代做,含 spawn_worker)
agentflow-worker/ DSH preset:Worker(不 orchestrate,无 delegation)
README.md DSH 预设发现页
如果你想看更深一层的定义,不要把 README 当成唯一真相来源:
SPEC.mdREPORT_STUCK_SPEC.mdreport_stuck 行为设计与 blackboard 契约smoke/mcp_comm_check.gopkg/server/mcp.gopkg/server/project_init.go.claude/agentflow-git.md 规则模板来源trees/*.jsonskills/agentflow/agents/agentflow-leader / agentflow-worker(项目无关;Leader 不代做、Worker 不 orchestrate,含 spawn_worker)docs/dsh-setup.mddocs/github-committer-and-branch-protection.mdagentflow is a local-first MCP orchestration engine for AI agent teams.
It now combines:
project_initsetup -> shape -> plan -> execute -> stuck -> donereview.commit and review.diff@stifer/dsh-agentflow in DSH Plugin Marketplace or community directory (dshfind), click install.dsh plugin --profile web add @stifer/dsh-agentflow
<dshHome>/profiles/web/cordis.patch.yml):- insert:
- id: agentflow
name: '@stifer/dsh-agentflow'
/agentflow in conversation to bring up the orchestrator guide.mcp__agentflow__*).irm https://raw.githubusercontent.com/toustifer/agentflow/master/scripts/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/toustifer/agentflow/master/scripts/install.sh | bash
.claude.json or codex.json. Or build from source: go build -o agentflow ./cmd/agentflow/ && ./agentflow stdio.Connect with hub.stifer.xyz control plane for team coordination:
hub_login(): Two-step browser device-code login — no code returns a verification_url + code; calling again with code polls until approved, then saves the JWT to ~/.agent-hub/config.json (JWT-only; no team code is written).hub_list_teams(): Discover your team codes. Needs the JWT from hub_login; an API key alone returns skipped, not failed.hub_bind_team(namespace_id, business_code): Bind local workspace with 4-digit team business code.project_init
-> worker_register
-> dag_create
-> task_create_batch
-> project_next_steps
-> leader_tick
Leader: refresh phase -> dispatch / monitor / stuck / done
Worker: confirm -> worktree -> implement -> commit -> doc -> diary -> submit
Reviewer: fetch diff -> decide -> pass / rework
SPEC.md for handbook / diary data modelREPORT_STUCK_SPEC.md for stuck-path contractsmoke/mcp_comm_check.go for end-to-end smokepkg/server/mcp.go for the authoritative MCP tool surfacetrees/*.json for the shipped behavior treesMIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。