千帆竞发,万舸争流 — 多 AI Agent 编排框架,用声明式 YAML 定义 Agent 协作流程。
- 声明式工作流 — 用 YAML 定义多步骤 Agent 编排规则,支持依赖关系和并行执行
- 多模型混用 — 不同步骤可使用不同 LLM(DeepSeek 写代码、GLM 审查、Qwen 生成测试)
- 国产模型优先 — 内置 DeepSeek、智谱GLM、通义千问、Moonshot、豆包 等国内主流模型支持
- 真实工具调用 — Agent 自主决定何时读写文件、执行命令,多轮工具调用循环
- 交互式配置 — TUI 引导配置 Provider、选择默认模型、验证 API Key 有效性
- 中英文界面 —
tsail config --lang en一键切换界面语言 - 执行历史 — SQLite 存储每次运行记录,可回溯查看
npm install -g thousandsailagenttsail config交互式引导,选择 LLM Provider、输入 API Key、选择默认模型:
◆ 选择要配置的 Provider
│ ● DeepSeek(深度求索) 已配置 ✓
│ ○ 智谱 GLM(ChatGLM)
│ ○ 通义千问(Qwen)
│ ○ Moonshot(Kimi)
│ ○ 豆包(火山引擎)
│ ○ Anthropic(Claude)
│ ○ OpenAI(GPT)
│ ○ 自定义 Provider
└ ○ 完成配置
也可以直接配置指定 Provider:
tsail config deepseek # 跳过菜单,直达 DeepSeek 配置创建 pipeline.yaml:
name: code-review-pipeline
steps:
- id: code
agent: coder
model: deepseek/deepseek-v4-flash
prompt: "根据以下需求实现功能: {{input.requirement}}"
tools: [file_write, file_read, terminal]
max_steps: 5
- id: review
agent: reviewer
model: glm/glm-4-flash
prompt: "审查代码,检查安全和性能问题: {{steps.code.output}}"
depends_on: [code]
tools: [file_read]
- id: test
agent: tester
model: deepseek/deepseek-v4-flash
prompt: "为以下代码编写单元测试并执行: {{steps.code.output}}"
depends_on: [code]
tools: [file_write, file_read, terminal]
max_steps: 5
- id: refine
agent: coder
model: deepseek/deepseek-v4-flash
prompt: "根据审查意见和测试结果修改代码。审查: {{steps.review.output}} 测试: {{steps.test.output}}"
depends_on: [review, test]
tools: [file_write, file_read, terminal]
max_steps: 5
retry_count: 1tsail run pipeline.yaml -i requirement="实现一个HTTP服务器"使用 --verbose 查看工具调用详情:
tsail run pipeline.yaml -i requirement="实现一个HTTP服务器" --verbose| 命令 | 说明 |
|---|---|
tsail run <file> |
运行工作流 YAML |
tsail config |
交互式配置 Provider |
tsail config <provider> |
直接配置指定 Provider(如 tsail config deepseek) |
tsail config --lang en |
切换界面语言(zh/en) |
tsail providers |
查看已配置的 Provider |
tsail providers --test |
验证所有 API Key 是否有效 |
tsail list |
列出当前目录的工作流文件 |
tsail history [id] |
查看运行历史 |
-i, --input <k=v...> 传入输入参数
-d, --db <path> 指定数据库路径
--verbose 显示详细输出(含工具调用详情)
name: <工作流名称>
workdir: <工作目录> # 可选,工具在指定目录下执行
steps:
- id: <步骤ID> # 必填,唯一标识
agent: <Agent类型> # coder / reviewer / tester
model: <provider/model> # 必填,支持省略模型名使用默认模型
prompt: <提示词> # 必填,支持模板变量
tools: [file_read, ...] # 可用工具列表
depends_on: [step_id, ...] # 依赖的步骤(可选)
max_steps: <number> # 最大工具调用轮数(可选)
retry_count: <number> # 失败重试次数(可选)
route: <name> # 路由名称,仅在上游 Agent 设置了匹配路由时执行(可选)
plan: true # 标记为规划步骤,首先执行并可修改工作流(可选)
optional: true # 标记为可选步骤,规划器可决定跳过(可选)
tools_config: # 工具安全配置(可选)
http_request: # HTTP 请求工具配置
allowed_domains: [...] # 域名白名单(可选)
allow_private: false # 允许访问内网(可选,默认 false)| 变量 | 说明 |
|---|---|
{{input.xxx}} |
运行时传入的参数 |
{{steps.xxx.output}} |
上游步骤的 LLM 输出 |
model: deepseek/deepseek-v4-flash # 完整写法
model: deepseek # 省略模型名,使用配置的默认模型无 depends_on 的步骤会并行执行,有依赖的步骤等待上游完成后才启动。
Agent 可以在执行过程中主动向用户提问,并根据交互结果自主决定工作流走向。
两个新工具:
| 工具 | 说明 |
|---|---|
human_input |
Agent 向用户提问并等待回答 |
set_route |
Agent 设置路由决策,控制下游步骤执行 |
工作原理:
- Agent 执行时调用
human_input向用户提问(CLI 交互) - Agent 根据回答调用
set_route设定路由(如embedded) - 下游步骤通过
route字段声明所属路由 - 调度器只执行路由匹配的步骤,其余跳过
示例:
name: led-driver
steps:
- id: analyze
agent: coder
model: deepseek/deepseek-v4-flash
prompt: "分析需求,向用户确认目标平台和架构方案,然后选择实现路径"
tools: [human_input, set_route]
- id: hal_impl
agent: coder
model: deepseek/deepseek-v4-flash
prompt: "使用 HAL 库实现嵌入式驱动"
tools: [file_write, file_read, terminal]
depends_on: [analyze]
route: hal
- id: register_impl
agent: coder
model: deepseek/deepseek-v4-flash
prompt: "使用寄存器直接操作实现嵌入式驱动"
tools: [file_write, file_read, terminal]
depends_on: [analyze]
route: register
- id: test
agent: tester
model: deepseek/deepseek-v4-flash
prompt: "为生成的代码编写单元测试"
tools: [file_write, terminal]
depends_on: [hal_impl, register_impl]
# 无 route 字段,不论哪个实现都会执行运行 tsail run led-driver.yaml -i requirement="LED驱动",Agent 会通过 CLI 询问用户目标平台,自主选择路径。
工作流可以是灵活模板 — YAML 定义所有可能的步骤,由 Agent 在运行时决定实际执行哪些。
工作原理:
- 标记
plan: true的步骤首先执行(规划器) - 规划器使用
plan_steps工具修改工作流:- 禁用不需要的可选步骤
- 修改步骤的 prompt
- 新增步骤
- 框架按修改后的计划执行
示例:
name: adaptive-review
steps:
- id: planner
agent: planner
model: deepseek/deepseek-v4-flash
prompt: "分析需求,决定需要哪些步骤。模板中有编码、审查、测试三个步骤。"
tools: [human_input, plan_steps]
plan: true
- id: code
agent: coder
model: deepseek/deepseek-v4-flash
prompt: "实现功能: {{input.requirement}}"
tools: [file_write, terminal]
depends_on: [planner]
- id: review
agent: reviewer
model: glm/glm-4-flash
prompt: "审查代码"
tools: [file_read]
depends_on: [code]
optional: true
- id: test
agent: tester
model: deepseek/deepseek-v4-flash
prompt: "编写并运行测试"
tools: [file_write, terminal]
depends_on: [code]
optional: true运行时,planner 分析需求后可能:
- 简单改动 → 只保留 code,跳过 review 和 test
- 核心功能 → 保留 code + test,跳过 review
- 重要模块 → 全部执行,或新增 security_scan 步骤
Agent 可以发起 HTTP 请求,访问外部 API 或网页,并自动解析响应内容。
内置解析:
- JSON 响应 → 自动解析为结构化数据
- HTML 响应 → 自动提取纯文本内容
extract: "links"→ 提取页面中所有链接
示例:
name: api-fetch
tools_config:
http_request:
allowed_domains: ["api.github.com"]
steps:
- id: fetch
agent: coder
model: glm/glm-4-flash
prompt: "获取 GitHub 上的最新 issue 列表"
tools: [http_request]
max_steps: 3安全特性:
- 默认禁止访问内网地址(localhost、192.168.x.x 等)
- 可配置域名白名单(
allowed_domains) - 响应大小限制 1MB,文本截断 5000 字符
| Provider | 类型 | 默认模型 |
|---|---|---|
| DeepSeek | OpenAI-compatible | deepseek-v4-flash |
| 智谱 GLM | OpenAI-compatible | glm-4-flash |
| 通义千问 | OpenAI-compatible | qwen-plus |
| Moonshot | OpenAI-compatible | moonshot-v1-8k |
| 豆包 | OpenAI-compatible | doubao-pro-32k |
| Anthropic | Anthropic | claude-sonnet-4-20250514 |
| OpenAI | OpenAI-compatible | gpt-4o |
也支持通过 tsail config 添加任意 OpenAI-compatible API。
当前版本:V0.7.0
- YAML 工作流解析与 Zod 校验
- DAG 依赖分析与并行调度
- 多 Provider LLM 调用(7 个内置 + 自定义)
- 交互式 TUI Provider 配置(模型选择、API Key 验证)
- API Key AES-256-CBC 加密存储
- 模板变量解析(input / steps.output)
- 内置工具注册(file_read / file_write / terminal)
- SQLite 执行历史持久化
- CLI 工具(run / config / providers / list / history)
- 端到端测试(42 个测试全部通过)
- 真实 API 调用验证(DeepSeek + GLM)
- Agent 类型系统提示(coder / reviewer / tester 差异化策略)
- LLM 真实工具调用(自主决定读写文件、执行命令)
- 工具调用可观测(--verbose 显示工具名、参数、返回值)
- 工作目录支持(workdir)
- 步骤重试机制(retry_count)
- 上下文智能摘要(压缩长文本,控制 Token 消耗)
- 配置系统完善(模型选择、Key 验证、删除、快捷入口、测试)
- 中英文界面切换
- 配置目录自动迁移
- 动态路由(Agent 自主决策分支路径)
- 人工交互(Agent 可向用户提问获取信息)
- 可变模板(Agent 可动态修改工作流步骤)
- HTTP 请求工具(访问外部 API 和网页)
- 更多工具(Web 搜索、目录操作、数据存储)
- Web Dashboard
- VS Code 插件
git clone https://github.com/Lion-1209/ThousandSailAgent.git
cd ThousandSailAgent
npm install
npm test # 运行测试
npm run dev -- --help # 开发模式运行MIT