missiond
Lisp为Claude Code、Codex、Gemini和MissionD工作人员管理本地编排 --规范请求,审查意图和计划,将BoardTasks分派到受管理的PTY插槽,并根据持久证据完成工作。
什么是missiond?
MissionD是一个守护进程和工具界面,它将请求转化为经过审查的Lisp工件、批准的计划、BoardTasks和worker执行。V3控制平面权限为 .missiond/v3/missiond-blueprint.lisp;生成JSON格式 .missiond/v3/runtime/compiled/ 是机器投影。生产运行时路径仅使用已编译的JSON;原始V3 Lisp源代码回退不是运行时逃逸。Postgres是运行时存储、事件日志和运行时工件目录;Board和PTY屏幕是该州的投影。
特性
核心
PTY会议 --伪终端中的Spawn Claude代码,具有完整的终端仿真功能(通过Alacritty终端)
语义分析 --实时状态检测(空闲/思考/响应/确认/错误)、工具输出提取、状态栏解析、确认对话框解析
MCP集成 --生成的工具组通过模型上下文协议和守护进程IPC桥公开
请求/计划门 — mission_request 编写请求本地Lisp工件,并在以人工模式执行之前需要明确的意图/计划批准
董事会任务分派 --批准的计划路线 mission_task_delegate、董事会索赔、自动驾驶仪和受管理的PTY插槽
V3编译合同 — missiond-lispc 发出源哈希检查的运行时配置、语义IR、契约ABI、项目宇宙、工作流契约和基因组投影
权限系统 --基于角色的工具权限(允许/确认/拒绝)与glob模式匹配
交叉平台的 --macOS、Linux、Windows;Unix域套接字或TCP环回IPC
代理生命周期
自动重启 --当上下文窗口降至10%以下时,自动重新启动PTY插槽
卡住检测 --监控JSONL活动以检测和恢复卡住的代理
自主工作流 --代理可以使用安全护栏自主工作,并向协调器报告
知识与记忆
知识库(KB) --Postgres支持已审查的内存和FTS/read模型预测
运行时工件目录 --冷 .missiond/v3/runtime/** 文件作为诊断缓存保留,并在中建立索引 runtime_artifacts 用于证据视图和保留治理
对话记录 --摄取提供者本地登录MissionD的Postgres读取模型和事件流
内存提取 --从代理对话中提取见解的实时和深度分析管道
KB注入 --通过MCP服务器指令和UserPromptSubmit挂钩自动将相关知识注入代理上下文
监控和仪表板
Websocket API --实时PTY连接、任务事件和会话监控
板UI --Next.js仪表板,带有对话查看器、插槽状态和任务管理
CC任务监视器 --通过查看Claude Code的JSONL会话文件进行跨会话任务监控
PTY屏幕截图 --将终端状态渲染为PNG图像以进行可视化调试
基础设施工具
任务委员会 --带有注释、隐藏任务和跳过状态的任务/看板
问题队列 --客服可以发布问题供人工审核,而不是屏蔽
老虎机历史 --跟踪每个插槽的任务分配历史记录
AI路由器 --通过可配置的模型后端路由LLM请求(用于KB分析)
可达性检查 --探测配置的服务器运行状况终结点
操作系统诊断 --系统资源监控(CPU、内存、磁盘)
建筑
复制 ┌─────────────────┐ MCP ┌──────────────┐
│ Claude Code │◄────────────►│ mission-mcp │
│ (Orchestrator) │ └──────┬───────┘
└─────────────────┘ │ IPC (JSON-RPC)
▼
┌──────────────────┐
│ missiond │
│ (Daemon) │
├──────────────────┤
│ • Request/Plan │
│ • Board/EventBus │
│ • PTY Manager │
│ • Permission Mgr │
│ • Postgres Store │
│ • Knowledge Base │
│ • Memory Pipeline │
│ • WebSocket API │
│ • CC Tasks Watcher│
└────────┬─────────┘
│ PTY
┌─────────────────────────┼─────────────────────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ slot-1 │ │ slot-2 │ │ slot-N │
│ Claude │ │ Claude │ │ Claude │
│ (coder) │ │ (research)│ │ (memory) │
└───────────┘ └───────────┘ └───────────┘
安装
来自货物(生锈)
复制 cargo install missiond-mcp --bin mission-mcp
cargo install missiond-daemon --bin missiond
cargo install missiond-attach --bin missiond-attach
来自npm(Node.js)
复制 npm install @missiond/core
预构建的二进制文件用于:
macOS(ARM64,x64)
Linux(x64 glibc,x64 musl)
Windows(x64)
快速开始
1.配置MCP
添加 ~/.claude/settings.json:
复制 {
"mcpServers": {
"mission": {
"command": "mission-mcp",
"args": [],
"env": { "MISSION_LOG_LEVEL": "warn" }
}
}
}
2.配置插槽
运行时插槽策略预计从 .missiond/v3/missiond-blueprint.lisp 工作站配置。遗产 ~/.missiond/slots.yaml 为了兼容性,可能仍然存在,但新的可调度工作者应该在V3中表示。
复制 slots:
- id: coder-1
role: coder
description: "Coding specialist"
cwd: /path/to/projects
- id: researcher-1
role: researcher
description: "Research and documentation"
cwd: /path/to/docs
3.使用克劳德代码
复制 User: "Spawn an agent to refactor the auth module"
Claude: I'll spawn a coding agent for that task.
[Uses mission_pty_spawn tool]
[Uses mission_pty_send with the refactoring instructions]
MCP工具
任务操作
工具
说明
mission_submit
向代理提交异步任务(具有可选的slotId目标)
mission_task
批量查询提交任务状态
mission_ask
同步专家咨询
mission_status
查询任务/代理状态
mission_cancel
取消正在运行的任务
mission_spawn
生成一个新的代理插槽
mission_kill
杀死代理插槽
mission_restart
重新启动代理插槽
mission_agents
列出所有代理及其状态
mission_slots
获取插槽配置
mission_inbox
检查收件箱中的邮件
PTY控制
工具
说明
mission_pty_spawn
开始PTY会话
mission_pty_send
发送消息,等待响应
mission_pty_screen
获取当前终端屏幕
mission_pty_screenshot
将终端渲染为PNG图像
mission_pty_confirm
处理工具确认对话框
mission_pty_interrupt
发送Ctrl+C
mission_pty_kill
关闭PTY会话
mission_pty_status
获取会话状态和元数据
mission_pty_history
获取会话消息历史记录
mission_pty_logs
获取PTY日志文件内容
知识库
工具
说明
mission_kb_remember
存储知识条目
mission_kb_forget
删除知识条目
mission_kb_search
跨KB的全文搜索
mission_kb_get
按ID获取条目
mission_kb_list
列出具有筛选功能的条目
mission_kb_import
批量进口条目
mission_kb_discover
从基础设施中发现知识
mission_kb_gc
垃圾回收陈旧条目
mission_kb_analyze
AI驱动的知识库分析(通过可配置的LLM后端)
董事会和任务
工具
说明
mission_board_list
列出板任务
mission_board_create
创建董事会任务
mission_board_update
更新板任务
mission_board_get
获取任务详细信息
mission_board_delete
删除板任务
mission_board_toggle
切换任务完成
mission_board_note_add
向任务添加注释
mission_board_summary
获取董事会摘要
监控
工具
说明
mission_cc_sessions
列出所有Claude Code会话
mission_cc_tasks
获取会话任务
mission_cc_overview
全局任务统计
mission_cc_in_progress
所有正在进行的任务
mission_cc_trigger_swarm
触发群体协调
mission_slot_history
每个插槽的任务分配历史记录
对话与记忆
工具
说明
mission_conversation_list
列出录制的对话
mission_conversation_get
获取对话消息
mission_conversation_search
搜索对话内容
mission_memory_pending
检查挂起的内存队列
mission_memory_pause
暂停内存提取(带自动恢复TTL)
mission_memory_done
标记内存处理完成
mission_token_stats
代币消费统计
权限
工具
说明
mission_permission_get
获取当前权限策略
mission_permission_set_role
设置插槽角色权限
mission_permission_set_slot
按插槽设置覆盖
mission_permission_add_auto_allow
添加自动允许规则
mission_permission_reload
重新加载权限配置
基础设施
工具
说明
mission_infra_list
列出已配置的基础架构
mission_infra_get
获取基础设施详细信息
mission_health
守护进程健康检查
mission_reachability
探测服务器运行状况端点
mission_os_diagnose
系统资源诊断
mission_skill_list
列出可用技能
mission_skill_search
按关键字搜索技能
mission_context_build
从技能构建情境
问题队列
工具
说明
mission_question_create
特工向人类提问
mission_question_list
列出未决问题
mission_question_get
获取问题详细信息
mission_question_answer
人类回答问题
mission_question_dismiss
驳回一个问题
AI路由器
工具
说明
mission_router_chat
通过配置的LLM后端路由聊天完成
贾维斯(测井)
工具
说明
mission_jarvis_logs
查询日志中心条目
mission_jarvis_trace
按ID跟踪请求
语义终端解析
该守护进程包括对Claude Code的TUI进行复杂的终端解析:
状态机 --通过反抖动跟踪空闲、思考、响应、工具运行、确认、错误、SlashMenu状态
确认对话框解析 --从权限提示中提取工具名称、参数、文件路径
状态栏解析 --从底部行读取微调器状态和状态文本
工具输出提取 --解析两个盒子(───)以及内联工具输出
标题解析 --监控终端标题更改以获取会话信息
复制 pub enum SessionEvent {
StateChange { new_state, prev_state },
ConfirmRequired { prompt, info },
StatusUpdate(ClaudeCodeStatus),
ToolOutput(ClaudeCodeToolOutput),
TitleChange(ClaudeCodeTitle),
TextComplete(String),
}
Websocket API
PTY附件
复制 ws://localhost:9120/pty/<slot-id>
连接以实时观看PTY会话或与之互动。接收终端单元数据以进行渲染。
任务事件
复制 ws://localhost:9120/tasks
订阅任务生命周期事件:
cc_tasks_changed --任务已更新
cc_task_started / cc_task_completed
cc_session_active / cc_session_inactive
Node.js客户端
复制 import { MissionControl } from '@missiond/core';
const mission = new MissionControl();
await mission.connect(); // Auto-starts daemon
// Spawn PTY session
const pty = await mission.pty.spawn('slot-1', 'claude');
pty.on('state', (state) => console.log('State:', state));
pty.on('confirm', (info) => console.log('Confirm:', info));
// Send message and wait for response
const response = await pty.send('Explain this codebase');
console.log(response);
await pty.kill();
mission.close();
配置
环境变量
变量
默认值
描述
MISSIOND_HOME
~/.missiond
配置目录
MISSION_PG_URL
必需
PostgreSQL运行时数据库URL
MISSION_SLOTS_CONFIG
$MISSIOND_HOME/slots.yaml
插槽定义
MISSION_IPC_ENDPOINT
Unix套接字/TCP(Windows)
IPC端点
MISSION_WS_PORT
9120
WebSocket端口
MISSION_LOG_LEVEL
warn
日志级别
跨平台IPC
Unix (macOS/Linux):Unix域套接字(~/.missiond/missiond.sock)
视窗 :TCP环回(127.0.0.1:port)
权限
在中配置工具权限 ~/.missiond/permissions.yaml:
复制 roles:
coder:
allow:
- "Bash(*)"
- "Read(*)"
- "Write(*)"
confirm:
- "Edit(*)"
deny:
- "Bash(rm -rf*)"
researcher:
allow:
- "Read(*)"
- "WebSearch(*)"
deny:
- "Bash(*)"
- "Write(*)"
AI路由器(可选)
使用 mission_kb_analyze 和 mission_router_chat,在中配置LLM后端 ~/.missiond/credentials.json:
复制 {
"auth_url": "https://your-llm-api-endpoint.com",
"api_key": "your-api-key"
}
秘密决议(可选)
插槽环境变量支持 ${secret:path} 在生成时通过可配置命令解析机密的语法。
板条箱
板条箱
描述
missiond-core
核心库:PTY管理、语义终端解析、任务队列、知识库、IPC
missiond-mcp
MCP服务器二进制文件(mission-mcp)——工具定义和JSON-RPC协议
missiond-daemon
守护进程二进制文件(missiond)--所有子系统的主流程
missiond-runner
用于插槽进程管理的Claude CLI包装器
missiond-attach
PTY连接CLI(missiond-attach)--连接到正在运行的会话
semantic-terminal-napi
用于语义终端解析的Node.js N-API绑定
包(npm)
包装
描述
@missiond/core
带自动守护进程管理的Node.js客户端库
@missiond/board
Next.js用于监控和管理的仪表板
@missiond/semantic-terminal
Node.js语义终端解析器
发展
复制 # Build all crates
cargo build
# Run daemon
cargo run --bin missiond
# Run MCP server
cargo run --bin mission-mcp
# Build Node.js packages
cd packages/node-client && pnpm build
cd packages/board && pnpm build
许可证
MIT许可证——见 许可证 了解详情。