资源管理命令¶
资源管理命令用于新建、查看、校验和删除项目资源。不同资源的管理方式不完全相同:
| 资源类型 | 包含什么 | 可以做什么 |
|---|---|---|
| 可以增删的资源 | Ability、Node、Skill、Tool、MCP、Knowledge | 新建、列出、校验、删除 |
| 固定文件 | Prompt | 列出、校验;编辑时使用 ide <path> |
| 项目配置 | Policy、Config | 列出、读取、修改、校验 |
资源入口和文件位置:
| 资源 | 从哪里进入 | 提示符 | 文件位置 |
|---|---|---|---|
| Ability | project ▸ 输入 ability |
Ability(<id>) ▸ |
abilities/<id>/ |
| Node | Ability(<id>) ▸ 输入 node |
Node(<id>) ▸ |
abilities/<ability_id>/nodes/<id>/ |
| Skill | project ▸ 输入 skill |
Skill ▸ |
skills/<id>/ |
| Tool | project ▸ 输入 tool |
Tool ▸ |
tools/local/<id>/ |
| MCP | Tool ▸ 输入 mcp |
MCP ▸ |
tools/mcp/<server>/ |
| Knowledge | project ▸ 输入 knowledge |
Knowledge ▸ |
knowledge/ |
| Prompt | project ▸ 输入 prompt |
Prompt ▸ |
prompts/ |
| Policy | project ▸ 输入 policy |
Policy ▸ |
trismind/policy.yaml |
| Config | project ▸ 输入 config |
Config ▸ |
trismind/config.yaml |
本地 Tool 放在 tools/local/,MCP 放在 tools/mcp/,两者不会发生名称或删除范围冲突。
资源页不提供省略路径的 ide 快捷方式。打开资源文件统一使用 ide <path>。
通用规则¶
新建¶
new 创建该资源需要的完整目录与基础文件。省略 id 或名称时打开输入界面。已有同名资源时不覆盖,提示选择已有资源或换一个名称。
只有全部文件生成并校验成功后,资源才会出现在项目中。任何一步失败或取消,都不会留下不完整的目录。
列出¶
list 只读取项目文件,按稳定顺序输出资源 id、名称和文件位置。每类资源的额外字段在对应小节说明。
校验¶
资源提示符下的 validate 使用与项目级 validate 相同的检查树、错误类型和最终状态:
- Ability、Node 提示符:只校验当前对象。
- Skill、Tool、MCP、Knowledge、Prompt:不带名称时校验该类全部对象,带名称时校验指定对象。
- Policy、Config:校验唯一配置文件。
删除¶
需要名称或 id 的 delete 命令都支持 Tab 补全。命令先列出目标路径,以及为了保持项目有效而需要同步修改的引用文件。确认后,TrisMind 删除资源,并从这些文件中移除对应引用。
删除资源和修复引用作为一次完整操作执行:全部成功才写入;任何一步失败,资源和引用文件都保持原样。
退出与对象变化¶
- 删除当前 Ability 后回到
project ▸。 - 删除当前 Node 后回到所属
Ability(<id>) ▸。 - 新建 Ability 或 Node 后进入新对象的提示符。
- MCP 的
exit回到Tool ▸。 - 其它资源的
exit回到project ▸。
Ability¶
Ability 是 Manager Agent 可以直接选择和调用的能力单位。Manager Agent 指项目最外层、负责理解用户请求并选择 Ability 的 Agent。每个 Ability 自己持有一组 Node,并用 ability.md 说明如何选择和组织这些 Node;Manager Agent 不直接调用 Node。
命令¶
| 输入位置 | 命令 | 描述 | 示例 |
|---|---|---|---|
project ▸ |
ability |
打开 Ability 选择器 | ability |
Ability(<id>) ▸ |
new [id] |
新建另一个 Ability | new guide_review |
Ability(<id>) ▸ |
list |
列出全部 Ability | list |
Ability(<id>) ▸ |
switch [id] |
切换当前 Ability | switch guide_review |
Ability(<id>) ▸ |
validate |
校验当前 Ability | validate |
Ability(<id>) ▸ |
node |
打开当前 Ability 的 Node 选择器 | node |
Ability(<id>) ▸ |
delete |
删除当前 Ability 及其 Node | delete |
Ability(<id>) ▸ |
exit |
回到 project ▸ |
exit |
项目还没有 Ability 时,ability 选择器只显示 New Ability。已有 Ability 时,选择器显示 id、名称和 Node 数量,也提供 New Ability。
新建 Ability¶
id 只能包含小写字母、数字和下划线,必须以字母开头,在项目内唯一。省略 id 时打开输入界面。
成功后生成:
| 路径 | 作用 | 详细说明 |
|---|---|---|
abilities/<id>/ability.yaml |
名称、描述、Node 清单和运行配置 | ability.yaml |
abilities/<id>/ability.md |
如何选择、组织和调用自己的 Node | ability.md |
abilities/<id>/nodes/ |
该 Ability 持有的 Node | Node |
创建完成后进入 Ability(<id>) ▸。nodes/ 初始为空,Ability 可以先存在,加入 Node 后再通过校验和运行。
project ▸ ability
Ability(guide_review) ▸ new guide_planning
successfully created ability guide_planning
path abilities/guide_planning/
files ability.yaml · ability.md
列出与切换¶
list 按 id 排序,显示 id、名称、说明、Node 数量和目录:
Ability(guide_planning) ▸ list
guide_planning
name 行程规划
description 收集需求并生成日程
nodes 2
path abilities/guide_planning/
guide_review
name 行程审核
description 检查路线和时间冲突
nodes 1
path abilities/guide_review/
list 只读,不切换当前 Ability。
switch 不带 id 时打开选择器;带 id 时直接切换。id 支持 Tab 补全。切换成功后提示符变为目标 Ability,不修改文件:
校验¶
validate 输出当前 Ability 的检查树,检查:
ability.yaml、ability.md和nodes/是否存在;- 两个 Ability 文件是否符合各自格式;
ability.yaml声明的 Node 是否都位于当前nodes/;- Node id 是否重复;
- Ability 引用的其它项目级资源是否存在;
- 当前 Ability 下每个 Node 的必需文件、字段和资源引用是否合法。
Node 的检查结果嵌套显示在当前 Ability 下,与项目级 validate ability.<id> 的输出一致。
进入 Node¶
node 打开当前 Ability 的 Node 选择器。选择器只显示当前 Ability 自己的 Node,并提供 New Node。选中后进入 Node(<id>) ▸。
删除 Ability¶
确认界面显示 Ability 目录、包含的 Node 数量,以及需要同步移除引用的配置文件:
┌ Delete ability ────────────────────────────────────────┐
│ guide_planning │
│ path abilities/guide_planning/ │
│ nodes 2 │
│ │
│ 同步更新 │
│ • trismind/config.yaml │
│ │
│ Cancel Delete │
└───────────────────────────────────────────────────────┘
确认后删除整个 abilities/<id>/,并从 Config 和其它相关配置中移除该 Ability 的引用。成功后回到 project ▸。
删除不可由 TrisMind 撤回;资源删除和引用修复中的任何一步失败时,所有文件都保持原样。
Node¶
Node 是 Ability 内部的执行单元。每个 Node 只属于一个 Ability;不同 Ability 可以使用同一个 Node id,配置互不影响。
命令¶
| 输入位置 | 命令 | 描述 | 示例 |
|---|---|---|---|
Ability(<id>) ▸ |
node |
打开当前 Ability 的 Node 选择器 | node |
Node(<id>) ▸ |
new [id] |
新建同一 Ability 下的另一个 Node | new review |
Node(<id>) ▸ |
list |
列出当前 Ability 的全部 Node | list |
Node(<id>) ▸ |
switch [id] |
切换当前 Node | switch review |
Node(<id>) ▸ |
validate |
校验当前 Node | validate |
Node(<id>) ▸ |
delete |
删除当前 Node | delete |
Node(<id>) ▸ |
exit |
回到所属 Ability | exit |
Node 的单独运行行为随运行层统一设计,当前资源命令不定义 run。
新建 Node¶
id 规则与 Ability 相同,只需要在当前 Ability 内唯一。创建后生成:
| 路径 | 必需 | 作用 | 详细说明 |
|---|---|---|---|
node.yaml |
是 | Node 的基本信息、调度条件、资源引用与输入输出声明 | node.yaml |
prompt.md |
是 | Node 执行任务时使用的提示 | Node prompt |
description.md |
是 | 说明 Node 做什么,供 Ability 判断何时调用 | description.md |
requirements.md |
否 | 定义执行前需要向用户确认的信息 | requirements.md |
dod.md |
否 | 定义完成条件 | dod.md |
存在 requirements.md 时,Ability 在计划阶段统一读取要求并向用户提问;缺失时不增加额外提问。dod.md 缺失时以 Node 正常返回结果作为完成;存在时还要满足文件中定义的条件。
创建成功后进入新建的 Node(<id>) ▸:
Ability(guide_planning) ▸ node
Node(collect_info) ▸ new review
successfully created node review
ability guide_planning
path abilities/guide_planning/nodes/review/
列出与切换¶
list 按 id 排序,显示 Node id、名称、是否为入口 Node、可选文件和目录:
Node(collect_info) ▸ list
collect_info
name 收集信息
entry yes
requirements present
dod absent
path abilities/guide_planning/nodes/collect_info/
generate_itinerary
name 生成行程
entry no
requirements absent
dod present
path abilities/guide_planning/nodes/generate_itinerary/
switch 不带 id 时打开当前 Ability 的 Node 选择器;带 id 时直接切换,支持 Tab 补全。选择器不会显示其它 Ability 下的 Node。成功后提示符变为目标 Node,不修改文件。
校验¶
validate 检查必需文件、各文件格式,以及引用的 Skill、Tool 和 Knowledge 是否存在。requirements.md 与 dod.md 缺失不算 error;文件存在但格式不合法时仍为 error。
删除 Node¶
确认界面显示 Node 目录,以及 ability.yaml、ability.md 中需要移除的引用:
┌ Delete node ───────────────────────────────────────────┐
│ review │
│ ability guide_planning │
│ path abilities/guide_planning/nodes/review/ │
│ │
│ 同步更新 │
│ • abilities/guide_planning/ability.yaml │
│ • abilities/guide_planning/ability.md │
│ │
│ Cancel Delete │
└───────────────────────────────────────────────────────┘
确认后删除整个 Node 目录并同步移除引用,成功后回到所属 Ability。任何一步失败时,所有文件保持原样。
Skill¶
Skill 是项目级的可复用流程或规则,可以被不同 Ability 和 Node 引用。
命令¶
| 输入位置 | 命令 | 描述 | 示例 |
|---|---|---|---|
project ▸ |
skill |
进入 Skill ▸ |
skill |
Skill ▸ |
new [name] |
新建 Skill | new parse_intent |
Skill ▸ |
list |
列出全部 Skill | list |
Skill ▸ |
validate [name] |
校验全部或指定 Skill | validate parse_intent |
Skill ▸ |
delete <name> |
删除 Skill | delete parse_intent |
Skill ▸ |
exit |
回到 project ▸ |
exit |
名称只能包含小写字母、数字、连字符和下划线,必须以字母或数字开头。省略名称时打开输入界面。
新建 Skill¶
成功后生成:
| 路径 | 作用 | 详细说明 |
|---|---|---|
skills/<name>/SKILL.md |
Skill 定义与执行说明 | SKILL.md |
scripts/ |
Skill 使用的脚本 | 资源目录 |
templates/ |
输出模板 | 资源目录 |
references/ |
参考资料 | 资源目录 |
assets/ |
图片等静态资源 | 资源目录 |
四个资源目录可以为空。已有同名 Skill 时不覆盖。创建成功后显示名称和目录,并停在 Skill ▸:
列出 Skill¶
list 按名称排序,每个 Skill 显示名称、说明、文件路径、资源文件数量,以及被哪些 Ability 或 Node 引用:
Skill ▸ list
name scripts templates references assets path used_by
──────────── ─────── ───────── ────────── ────── ─────────────────── ──────────────────────────────
parse_intent 2 1 0 0 skills/parse_intent guide_planning/collect_info
没有 Skill 时显示 (none)。list 只读取文件,不执行脚本,也不校验内容。
校验 Skill¶
| 命令 | 范围 |
|---|---|
validate |
校验全部 Skill |
validate <name> |
只校验指定 Skill |
名称支持 Tab 补全。检查内容包括:
SKILL.md是否存在,frontmatter 和正文结构是否合法;SKILL.md引用的脚本、模板、参考资料和静态资源是否存在;scripts/中脚本是否可解析;- 文件路径是否仍位于当前 Skill 目录内。
输出使用与项目级 validate 相同的 ✅ / ❎ 检查树。
删除 Skill¶
delete <name> 支持 Tab 补全。确认界面显示整个 skills/<name>/ 目录,以及需要同步清理引用的 Ability 和 Node。
确认后删除 Skill 目录,并从相关配置中移除该 Skill id。资源删除和引用修复全部成功后才写入;失败时所有文件保持原样。成功后停在 Skill ▸:
successfully deleted skill parse_intent
updated abilities/guide_planning/ability.yaml
updated abilities/guide_planning/nodes/collect_info/node.yaml
Tool¶
Tool 包含项目级的本地 Python 工具,以及通过 MCP 接入的外部工具。两者使用不同目录:
命令¶
| 输入位置 | 命令 | 描述 | 示例 |
|---|---|---|---|
project ▸ |
tool |
进入 Tool ▸ |
tool |
Tool ▸ |
new [name] |
新建本地 Tool | new weather_query |
Tool ▸ |
list |
列出本地 Tool 和 MCP 服务器 | list |
Tool ▸ |
validate [name] |
校验全部工具或指定本地 Tool | validate weather_query |
Tool ▸ |
delete <name> |
删除本地 Tool | delete weather_query |
Tool ▸ |
mcp |
进入 MCP ▸ |
mcp |
Tool ▸ |
exit |
回到 project ▸ |
exit |
新建本地 Tool¶
new 省略名称时打开输入界面。名称只能包含小写字母、数字和下划线,必须以字母开头;已有同名 Tool 时不覆盖。
成功后生成:
| 路径 | 作用 | 详细说明 |
|---|---|---|
tools/local/<name>/tool.py |
可调用函数、参数类型与返回值 | tool.py |
tools/local/<name>/README.md |
用途和使用说明 | Tool README |
Tool ▸ new weather_query
successfully created tool weather_query
entry tools/local/weather_query/tool.py
创建后停在 Tool ▸。
列出 Tool¶
list 分为 本地 Tool 和 MCP 服务器 两段:
Tool ▸ list
Local tools
name entry function refs
───────────── ───────────────────────────────── ───────────── ──────────────
weather_query tools/local/weather_query/tool.py weather_query guide_planning/collect_info
MCP servers
name type state tools enabled
────── ────── ───────────── ───── ───────
github remote connected 12 3
本地 Tool 显示名称、入口文件、函数名和引用位置;MCP 服务器显示连接状态、已发现工具数和已启用工具数。list 只读取配置,不导入 Python,也不连接服务器。
校验 Tool¶
| 命令 | 范围 |
|---|---|
validate |
校验全部本地 Tool 和 MCP 服务器 |
validate <name> |
只校验指定本地 Tool |
名称支持 Tab 补全。本地 Tool 的检查包括:
tool.py和README.md是否存在;- Python 文件是否可以解析和导入;
- 可调用函数是否存在;
- 参数名、参数类型和返回值是否完整;
- Tool id 与函数声明是否一致;
- 引用的文件是否仍在 Tool 目录内。
具体格式见 tool.py。单个 MCP 服务器在 MCP ▸ 下执行 validate <name>。
删除本地 Tool¶
delete <name> 支持 Tab 补全,只删除 tools/local/<name>/,不会触碰 tools/mcp/。
确认界面列出 Tool 目录,以及需要同步清理引用的 Ability 和 Node。确认后删除 Tool,并从相关配置中移除它的 id。全部修改成功后输出:
successfully deleted tool weather_query
updated abilities/guide_planning/nodes/collect_info/node.yaml
任一步失败时,Tool 和引用文件都保持原样。成功后停在 Tool ▸。
进入 MCP¶
mcp 是 MCP 的唯一入口。执行后提示符变为 MCP ▸;exit 返回 Tool ▸。
MCP¶
MCP 服务器为项目提供外部工具。每个服务器包含连接配置和发现到的工具清单。
命令¶
| 命令 | 描述 | 示例 |
|---|---|---|
add [name] |
通过交互流程添加服务器 | add github |
add-json <name> <json> |
从完整 JSON 添加服务器 | add-json github '{"type":"remote"}' |
discover <name> |
读取服务器提供的工具 | discover github |
connect <name> |
完成认证并连接服务器 | connect github |
list |
列出服务器及状态 | list |
schema <name> <tool> |
查看一个工具的结构定义 | schema github search_repo |
validate [name] |
校验全部或指定服务器配置 | validate github |
delete <name> |
删除服务器 | delete github |
exit |
回到 Tool ▸ |
exit |
添加服务器¶
add 省略名称时先要求输入名称。名称只能包含小写字母、数字和下划线,必须以字母开头;已有同名服务器时不覆盖。随后选择连接类型:
| 类型 | 需要输入 |
|---|---|
remote |
HTTPS URL;可选请求头和认证方式 |
local |
可执行命令与参数;可选环境变量 |
remote URL 必须使用 HTTPS。请求头和环境变量中的敏感值使用遮罩输入,不显示在终端,也不写入命令历史。
确认后生成 tools/mcp/<name>/config.yaml,状态为 not_connected。具体字段见 MCP 配置。
完整的交互示例(remote):
Tool ▸ mcp
MCP ▸ add github
Select transport
● Remote HTTPS endpoint
Local spawn a local command
↑↓ select · Enter confirm · Esc cancel
选择 Remote 后输入 URL:
结果:
✓ added MCP server github
type remote
config tools/mcp/github/config.yaml
state not_connected
next `connect github`
完整交互示例(local,命令和参数写在同一行):
MCP ▸ add local_docs
Select transport
● Remote
Local
→ Enter
Add MCP local_docs · command
Command: npx -y @modelcontextprotocol/server-filesystem /Users/alice/docs
Enter confirm · Esc cancel
省略名称时先输入名称:
随后仍然是 transport 选择与 URL/命令输入。
add-json 接受一个完整 JSON 对象,适合已有配置的情况。JSON 顶层必须是对象,且字段符合 MCP 配置;解析或校验失败时不创建目录。含 token 的配置不能直接写在命令行,应改用环境变量引用。
发现与连接¶
discover <name> 连接服务器并读取工具名、说明、输入结构和权限信息。成功后更新 config.yaml 中的工具清单;新发现的工具默认关闭,明确启用后才会进入构建产物。发现失败时保留原工具清单。
connect <name> 完成认证与握手。需要 OAuth 时自动打开浏览器;超过 3 秒未打开时显示可点击链接。token 从本机环境变量读取,不写入项目。连接成功后输出服务器名称、地址和连接状态:
连接与发现是两件事:连接用于确认服务器当前可用;发现用于同步工具清单。已有工具清单的服务器可以重新连接,不必每次执行 discover。
列出、查看和校验¶
list 显示服务器名称、类型、地址或启动命令、连接状态、认证状态、已发现工具数和已启用工具数:
MCP ▸ list
name type endpoint state auth tools enabled
────────── ────── ────────────────────────────────────── ───────────── ───────────── ───── ───────
github remote https://mcp.github.example connected authenticated 12 3
filesystem local npx @modelcontextprotocol/server-filesystem not_connected none 5 2
schema <name> <tool> 只读,不连接服务器,也不执行工具。它输出工具说明、输入字段、必填项、返回值和权限;服务器和工具名称都支持 Tab 补全。
validate 省略名称时校验全部服务器,带名称时只校验指定项。它检查配置文件、连接字段、工具清单和启用工具的权限声明,但不发起网络连接。
删除服务器¶
delete <name> 支持 Tab 补全。确认界面显示服务器目录,以及需要同步清理引用的 Ability、Node 和 Policy。确认后删除 tools/mcp/<name>/,并从相关配置中移除这个服务器提供的工具引用。
全部修改成功后才写入;失败时服务器目录和引用文件保持原样。成功后停在 MCP ▸。
Knowledge¶
Knowledge 管理项目可检索的知识库。一个知识库由名称、源文件和检索配置组成。
命令¶
| 命令 | 描述 | 示例 |
|---|---|---|
add <name> <path> |
添加一个知识库 | add travel_guides ./source/guides |
list |
列出全部知识库 | list |
validate [name] |
校验全部或指定知识库 | validate travel_guides |
preview <name> [--query <text>] |
预览检索结果 | preview travel_guides --query "东京交通" |
delete <name> |
删除知识库 | delete travel_guides |
exit |
回到 project ▸ |
exit |
添加 Knowledge¶
名称只能包含小写字母、数字和下划线,必须以字母开头。源路径可以是 Markdown、YAML 文件,或包含这些文件的目录。
源路径分两种模式:
| 源路径 | 行为 |
|---|---|
项目内相对路径,例如 ./source/guides |
把支持的文件复制到 knowledge/<name>/,目录源保留内部结构 |
绝对路径,例如 /Users/alice/shared/rust-learn |
原地引用,不复制文件;源目录可以位于项目外 |
相对路径不能包含 ..。绝对路径可以位于项目内或项目外;位于项目外时,只读取受支持的 .md、.markdown、.yaml、.yml 文件,其他文件忽略。knowledge/<name>/SOURCE.md 会记录外部源的位置和文件数,knowledge/retrieval.yaml 中的条目带 external: true。
确认后依次完成:
- 项目内源:复制支持的文件到
knowledge/<name>/;外部绝对路径:写入SOURCE.md指针,不复制文件; - 在
knowledge/retrieval.yaml中添加该名称的检索配置; - 校验源文件、目录与配置。
项目内目录示例:
project ▸ knowledge
Knowledge ▸ add travel_guides ./source/guides
✓ added Knowledge travel_guides
source knowledge/travel_guides
files 18
mode copied 18 file(s)
config knowledge/retrieval.yaml
外部绝对路径示例(不会复制 rust-learn 下的文件):
project ▸ knowledge
Knowledge ▸ add rust /Users/alice/shared/rust-learn
✓ added Knowledge rust
source /Users/alice/shared/rust-learn
files 42
mode registered in place (not copied)
config knowledge/retrieval.yaml
下一步可直接验检索:
preview 会显示实际源文件的绝对路径和行号,例如:
/Users/alice/shared/rust-learn/src/ownership.md:12-24 score=0.82
Rust ownership means each value has exactly one owner.
删除外部知识库时只删除 knowledge/<name>/ 指针和 retrieval.yaml 条目,不会删除外部源目录。
任何一步失败时,目录和 retrieval.yaml 都恢复到执行前状态。名称已存在时不覆盖。
列出 Knowledge¶
list 显示知识库名称、目录、文件数量、格式和最后修改时间:
Knowledge ▸ list
name files format external modified path
─────────────── ───── ──────── ──────── ───────────────── ────────────────────────────
travel_guides 18 markdown no 2026-10-24 16:40 knowledge/travel_guides
rust 42 markdown yes 2026-10-24 17:10 /Users/alice/shared/rust-learn
| 字段 | 含义 |
|---|---|
| name | 后续命令使用的知识库名称 |
| path | 项目内目录,或外部绝对路径(external: true) |
| files | 已收录的文件数量 |
| format | markdown、yaml 或 mixed |
| modified | 内容最近一次变更时间 |
列表不执行检索,也不修改文件。
校验与预览¶
validate 检查目录、文件编码、支持的格式、retrieval.yaml 配置和引用。名称省略时校验全部 Knowledge。
preview <name> 不带查询时展示代表性片段;带 --query 时展示命中片段、来源文件、行号和相关度。查询含空格时用引号包裹。
Knowledge ▸ preview travel_guides --query "东京交通"
1. knowledge/travel_guides/tokyo.md:42-58
relevance 0.91
东京地铁使用 Suica 或 PASMO 进站……
2. knowledge/travel_guides/transport.md:10-21
relevance 0.84
高峰时段建议避开山手线……
preview 只执行检索,不调用模型,不修改文件。
删除 Knowledge¶
delete <name> 支持 Tab 补全。确认界面显示 knowledge/<name>/、retrieval.yaml 中对应配置,以及需要同步清理引用的 Ability 和 Node。
确认后删除知识库目录与检索配置,并从相关资源中移除该知识库名称。所有修改成功后才写入;失败时文件保持原样。成功后停在 Knowledge ▸。
Prompt¶
Prompt 管理项目最外层 Manager Agent 使用的提示文件。当前项目级 Prompt 是 prompts/system.md;Node 的 Prompt 由各自 Node 管理。
| 命令 | 描述 |
|---|---|
list |
显示 Prompt 文件及用途 |
validate |
校验项目级 Prompt |
exit |
回到 project ▸ |
list 输出文件名、路径、用途和文件大小:
Prompt ▸ list
name path purpose status size
────── ───────────────── ────────────────────────── ─────── ──────
system prompts/system.md outer Manager Agent prompt present 2.1 KB
validate 检查 prompts/system.md 是否存在、文本编码、模板语法和变量引用,输出与项目级 validate prompt 相同的检查树。
编辑 Prompt 时,明确给出文件路径:
IDE 打开后仍停在 Prompt ▸。
Policy¶
Policy 是项目唯一的权限配置,控制工具、网络和文件操作被允许、需要确认还是拒绝。
| 命令 | 描述 | 示例 |
|---|---|---|
list |
列出全部策略项 | list |
get <key> |
查看一项 | get web.read |
set <key> <value> |
修改或创建一项 | set web.read ask |
validate |
校验 Policy | validate |
exit |
回到 project ▸ |
exit |
key 使用点号表示 YAML 层级,例如 web.read、tools.default_control。每一段只能包含小写字母、数字和下划线,必须以字母开头;不能包含空格、连字符、斜杠或连续两个点。get 和 set 都支持 Tab 补全已有 key。
list 按权限类别显示完整 key、当前值和来源:
Policy ▸ list
key value source
───────────────────── ───── ────────────────────
web.read 'ask' trismind/policy.yaml
web.write 'deny' trismind/policy.yaml
tools.default_control 'ask' trismind/policy.yaml
get <key> 只显示一项:
set <key> <value> 修改已有项;key 不存在时按点号路径创建。中间层不存在时一并创建,但不能覆盖已有的标量或列表。例如 set web.read ask 可以创建 web 映射和 read 字段;如果 web 已经是字符串,则拒绝修改。
value 的允许范围由 policy.yaml 中对应字段决定,常见权限值是 allow、ask、deny。写入前先校验修改后的完整 Policy;失败时原文件保持不变。成功后显示修改前后的值,并输出校验结果:
字段与完整取值见 policy.yaml。
Config¶
Config 是项目唯一的主配置,包含元信息、运行默认值和项目变量。
| 命令 | 描述 | 示例 |
|---|---|---|
list |
列出全部配置项 | list |
get <key> |
查看一项 | get metadata.name |
set <key> [value] |
修改或创建一项 | set metadata.description "旅行规划助手" |
validate |
校验 Config | validate |
exit |
回到 project ▸ |
exit |
key 使用点号表示 YAML 层级,例如 metadata.name、runtime.default_ability。每一段只能包含小写字母、数字和下划线,必须以字母开头;不能包含空格、连字符、斜杠或连续两个点。get 和 set 支持 Tab 补全已有 key。
list 按层级显示全部配置:
Config ▸ list
key value
──────────────────────── ─────────────────────
metadata.name 'travel-guide-agent'
metadata.description '旅行规划助手'
runtime.default_ability 'general'
variables.default_region 'jp'
get <key> 只显示一项。敏感值遮罩,不显示明文:
set <key> [value] 修改已有字段,也可以创建新字段。中间层不存在时一并创建,但不能把已有标量或列表改成映射。例如 set metadata.owner.name Alice 可以创建 owner.name;如果 metadata.owner 已经是字符串,则拒绝修改。
已有字段沿用原类型。新字段的值按以下规则解析:
| 输入 | 保存类型 |
|---|---|
true、false |
布尔值 |
42、3.14 |
数字 |
["a", "b"] |
列表 |
{"region":"jp"} |
对象 |
| 其它内容 | 字符串 |
含空格的字符串用引号包裹。
对于名称包含 secret、token、password、api_key 的敏感 key,命令不接受行内明文。只输入 key,例如 set integrations.github.token,随后在遮罩输入界面填写值;明文不显示,也不进入命令历史。普通 key 省略 value 时会提示补充,不能创建空值。
写入前,TrisMind 按 config.yaml 校验修改后的完整配置。失败时原文件保持不变。成功后显示 key、修改后的值和校验状态:
Config ▸ set metadata.description "旅行规划助手"
updated metadata.description
after 旅行规划助手
validation successful
set 不删除字段。需要删除时显式打开源文件:
完整示例:一条可复现的资源管理链路【待完善,勿看】¶
以下示例假设项目由 trismind 在空目录初始化。
Ability 与 Node¶
project ▸ ability
Select Ability
● general General
New Ability create a new Ability
→ 选择 general
Ability(general) ▸ node
Select Node
● respond Respond
New Node create a Node in this Ability
→ 选择 New Node
New Node
Node id: review
Enter confirm · Esc cancel
✓ created Node(review) in Ability(general)
path abilities/general/nodes/review
files node.yaml, prompt.md, description.md
创建后可立即校验:
Skill¶
Node(review) ▸ exit
Ability(general) ▸ exit
project ▸ skill
Skill ▸ new review_rules
✓ created Skill review_rules
path skills/review_rules
directories scripts/ templates/ references/ assets/
Skill ▸ validate
Skill ▸ list
name scripts templates references assets path used_by
──────────── ─────── ───────── ────────── ────── ──────────────────── ───────
review_rules 0 0 0 0 skills/review_rules -
Tool¶
Skill ▸ exit
project ▸ tool
Tool ▸ new weather_query
✓ created Tool weather_query
entry tools/local/weather_query/tool.py
Tool ▸ validate weather_query
Tool ▸ list
Local tools
name entry function refs
───────────── ───────────────────────────────── ───────────── ─────
weather_query tools/local/weather_query/tool.py weather_query -
MCP servers
(none)
MCP:完整交互输入¶
Tool ▸ mcp
MCP ▸ add github
Select transport
● Remote HTTPS endpoint
Local spawn a local command
→ Enter
Add MCP github · HTTPS URL
URL: https://mcp.github.example/mcp
→ Enter
✓ added MCP server github
type remote
config tools/mcp/github/config.yaml
state not_connected
next `connect github`
MCP ▸ discover github
✓ discovery successful (prototype adapter)
found 3
added 3
updated 0
disabled 3
MCP ▸ connect github
✓ status connected
server github
address https://mcp.github.example/mcp
MCP ▸ schema github weather
description: ...
input_schema: ...
Knowledge:项目内复制与外部原地引用¶
项目内目录会被复制:
MCP ▸ exit
Tool ▸ exit
project ▸ knowledge
Knowledge ▸ add travel_guides ./source/guides
✓ added Knowledge travel_guides
source knowledge/travel_guides
files 18
mode copied 18 file(s)
config knowledge/retrieval.yaml
外部绝对路径只登记,不复制:
Knowledge ▸ add rust /Users/alice/shared/rust-learn
✓ added Knowledge rust
source /Users/alice/shared/rust-learn
files 42
mode registered in place (not copied)
config knowledge/retrieval.yaml
Knowledge ▸ list
name files format external modified path
─────────────── ───── ──────── ──────── ───────────────── ────────────────────────────
rust 42 markdown yes 2026-10-25 17:10 /Users/alice/shared/rust-learn
travel_guides 18 markdown no 2026-10-25 17:05 knowledge/travel_guides
Knowledge ▸ preview rust --query ownership
/Users/alice/shared/rust-learn/src/ownership.md:12-24 score=0.82
Rust ownership means each value has exactly one owner.
Policy 与 Config¶
Knowledge ▸ exit
project ▸ policy
Policy ▸ list
key value source
───────────────────── ─────── ────────────────────
permissions.tools.local 'ask' trismind/policy.yaml
permissions.tools.mcp 'ask' trismind/policy.yaml
Policy ▸ set permissions.tools.local deny
✓ updated permissions.tools.local
previous 'ask'
value 'deny'
validation successful
Policy ▸ exit
project ▸ config
Config ▸ set metadata.description "旅行规划助手"
✓ updated metadata.description
value '旅行规划助手'
validation successful
Config ▸ set integrations.github.token
value (masked):