跳转至

资源管理命令

资源管理命令用于新建、查看、校验和删除项目资源。不同资源的管理方式不完全相同:

资源类型 包含什么 可以做什么
可以增删的资源 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,不修改文件:

Ability(guide_planning) ▸ switch guide_review
Ability(guide_review) ▸

校验

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 ▸ new parse_intent
successfully created skill parse_intent
path  skills/parse_intent/

列出 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 接入的外部工具。两者使用不同目录:

tools/
├── local/<tool_id>/
└── mcp/<server_id>/

命令

输入位置 命令 描述 示例
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:

  Add MCP github · HTTPS URL
  URL: https://mcp.github.example/mcp
  Enter confirm · Esc cancel

结果:

✓ 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

省略名称时先输入名称:

MCP ▸ add
  Add MCP server
  Server name: weather
  Enter confirm · Esc cancel

随后仍然是 transport 选择与 URL/命令输入。

add-json 接受一个完整 JSON 对象,适合已有配置的情况。JSON 顶层必须是对象,且字段符合 MCP 配置;解析或校验失败时不创建目录。含 token 的配置不能直接写在命令行,应改用环境变量引用。

发现与连接

discover <name> 连接服务器并读取工具名、说明、输入结构和权限信息。成功后更新 config.yaml 中的工具清单;新发现的工具默认关闭,明确启用后才会进入构建产物。发现失败时保留原工具清单。

MCP ▸ discover github
successfully discovered github
found    12 tools
added    3
updated  1
disabled 12

connect <name> 完成认证与握手。需要 OAuth 时自动打开浏览器;超过 3 秒未打开时显示可点击链接。token 从本机环境变量读取,不写入项目。连接成功后输出服务器名称、地址和连接状态:

MCP ▸ connect github
successfully connected github
status  connected

连接与发现是两件事:连接用于确认服务器当前可用;发现用于同步工具清单。已有工具清单的服务器可以重新连接,不必每次执行 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。

确认后依次完成:

  1. 项目内源:复制支持的文件到 knowledge/<name>/;外部绝对路径:写入 SOURCE.md 指针,不复制文件;
  2. 在 knowledge/retrieval.yaml 中添加该名称的检索配置;
  3. 校验源文件、目录与配置。

项目内目录示例:

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

下一步可直接验检索:

Knowledge ▸ validate rust
Knowledge ▸ preview rust --query "ownership"

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 时,明确给出文件路径:

Prompt ▸ ide prompts/system.md

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> 只显示一项:

Policy ▸ get web.read
web.read  ask

set <key> <value> 修改已有项;key 不存在时按点号路径创建。中间层不存在时一并创建,但不能覆盖已有的标量或列表。例如 set web.read ask 可以创建 web 映射和 read 字段;如果 web 已经是字符串,则拒绝修改。

value 的允许范围由 policy.yaml 中对应字段决定,常见权限值是 allow、ask、deny。写入前先校验修改后的完整 Policy;失败时原文件保持不变。成功后显示修改前后的值,并输出校验结果:

Policy ▸ set web.read ask
updated     web.read
before      deny
after       ask
validation  successful

字段与完整取值见 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> 只显示一项。敏感值遮罩,不显示明文:

Config ▸ get metadata.name
metadata.name  travel-guide-agent

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 不删除字段。需要删除时显式打开源文件:

Config ▸ ide trismind/config.yaml

完整示例:一条可复现的资源管理链路【待完善,勿看】

以下示例假设项目由 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

创建后可立即校验:

Node(review) ▸ validate
✓ validation successful · checks 7  successful 7  error 0  status successful

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):