这份术语表用“先能理解”的方式解释,不追求教科书定义。gpt老师的说法是叫术语表,具体如下
| 英文 | 中文理解 | 在 Cairn 里是什么意思 |
|---|---|---|
| Project | 项目 / 任务 | 一次完整的问题求解过程,有起点和目标 |
| Origin | 起点 | 初始事实,固定 fact id 是 origin |
| Goal | 目标 | 最终目标,固定 fact id 是 goal |
| Fact | 事实 | 已经确认的信息,存储在 facts 表 |
| Intent | 意图 / 探索方向 | 从一些 fact 出发,声明下一步要探索什么 |
| Hint | 提示 | 人类给系统的额外建议,存储在 hints 表 |
| Fact graph | 事实图 | fact 是节点,intent 表示从哪些 fact 推到新 fact |
| Blackboard | 黑板架构 | 所有 agent 不直接聊天,只读写同一块共享状态 |
| Stigmergy | 间接协作 | agent 通过修改环境协作,而不是互相发消息 |
| Server | 服务端 | 提供 API,维护数据库和前端页面 |
| Router | 路由分组 | FastAPI 里把一类 API 放到一个文件 |
| Endpoint | 接口地址 | 一个具体 API,比如 POST /projects |
| Database | 数据库 | 这里用 SQLite,表结构在 db.py |
| Dispatcher | 调度器 | 读取项目状态,决定什么时候让 worker 干活 |
| Worker | 工作者 | 真正调用 AI 或工具执行任务的执行者 |
| Backend | 后端 | Python/FastAPI 这一层 |
| Frontend | 前端 | 浏览器页面,主要是 server/static/index.html |
| API | 接口 | 前端、dispatcher 和 server 之间通信的方式 |
| Claim | 认领 | worker 临时占有某个 intent 或 reason 任务 |
| Lease | 租约 | 认领不是永久的,需要 heartbeat 维持 |
| Heartbeat | 心跳 | worker 定期告诉 server:“我还活着,还在做” |
| Timeout | 超时 | 太久没心跳或命令太久没结束,就认为有问题 |
| Bootstrap | 初始化探索 | 项目刚开始时自动尝试解决或产出初始 fact |
| Reason | 推理下一步 | 读完整图,决定创建 intent、完成项目或不动作 |
| Explore | 执行探索 | 执行某个 intent,并把结果写成 fact |
| Conclude | 写回结论 | 把探索结果落库,通常会生成新的 fact |
| Complete | 完成项目 | 把项目状态改成 completed,目标达成 |
| Run | 一次运行记录 | 我们加的可观测对象,记录一次任务执行 |
| Event | 运行事件 | run 内部的阶段、输出、结束信息 |
| stdout | 标准输出 | worker 正常输出内容 |
| stderr | 标准错误 | worker 错误或日志输出 |
| Payload | 结构化数据 | event 里附带的 JSON 信息 |
| Prompt | 提示词 | 发给 LLM worker 的任务说明 |
| Driver | 适配器 | 把统一任务转换成 Claude/Codex/Pi/mock 的调用方式 |
| Container | 容器 | Docker 隔离环境,每个项目可有自己的 worker 容器 |
| Docker | 容器工具 | 用来运行 worker 环境 |
| SQLite | 轻量数据库 | 本地文件数据库,不需要单独数据库服务 |
| FastAPI | Python Web 框架 | Qinyuan server 用它写 API |
| Pydantic | 数据校验库 | models.py 里定义请求和响应格式 |
| Click | 命令行库 | cli.py 里用它定义 serve 和 dispatch 命令 |
| Uvicorn | ASGI 服务器 | 用来运行 FastAPI 应用 |
| YAML | 配置格式 | dispatch.example.yaml 等配置文件使用 |
| pytest | 测试框架 | 项目的自动化测试工具 |