Skip to content

数据模型

ToolResult

所有 Action 执行的标准化结果,底层为通过 PyO3 暴露的 Rust 结构体。

字段

字段类型默认值说明
successboolTrue执行是否成功
messagestr""人类可读的结果描述
promptOptional[str]None给 AI 的下一步建议
errorOptional[str]NonesuccessFalse 时的错误消息
contextDict[str, Any]{}附加上下文数据

方法

方法返回值说明
with_error(error)ToolResult创建带错误信息的副本(设置 success=False
with_context(**kwargs)ToolResult创建带更新上下文的副本
to_dict()Dict[str, Any]转换为字典
to_json()str序列化为 JSON 字符串
__eq__(other)bool相等比较
__str__()str人类可读字符串
__repr__()str无歧义表示

不支持直接使用 json.dumps()

ToolResult 是 Rust 后端对象,不能直接传给 json.dumps()。 请使用 to_json() 或先转换为字典:

python
import json
result = success_result("完成")

# 方式一 — 内置 JSON 序列化(推荐,使用 Rust serde)
json_str = result.to_json()

# 方式二 — 转换为字典后序列化
json_str = json.dumps(result.to_dict())

# 方式三 — serialize_result(支持 JSON 和 MsgPack)
from dcc_mcp_core import serialize_result
json_str = serialize_result(result)

工厂函数

python
from dcc_mcp_core import success_result, error_result, from_exception, validate_action_result

# 带上下文的成功结果
result = success_result("创建了 5 个球体", prompt="使用 modify_spheres", count=5)

# 带可能解决方案的错误结果
error = error_result(
    "失败", "文件未找到",
    prompt="检查路径",
    possible_solutions=["确认文件存在", "检查权限"],
    path="/bad/path",
)

# 从异常字符串创建
exc_result = from_exception(
    "ValueError: bad input",
    message="导入失败",
    include_traceback=True,
)

# 验证/规范化任意值为 ToolResult
validate_action_result(result)                          # 直接通过
validate_action_result({"success": True, "message": "OK"})  # dict → ARM
validate_action_result("hello")                         # 包装为成功结果

工厂函数签名

函数签名说明
success_result(message, prompt=None, **context) -> ToolResult创建成功结果
error_result(message, error, prompt=None, possible_solutions=None, **context) -> ToolResult创建失败结果
from_exception(error_message, message=None, prompt=None, include_traceback=True, possible_solutions=None, **context) -> ToolResult将异常包装为结果
validate_action_result(result: Any) -> ToolResult规范化 dict/str/None/ARM → ToolResult

SkillMetadata

从 SKILL.md 前置元数据解析的元数据。所有字段可读可写。

字段

字段类型默认值说明
namestr唯一标识符
descriptionstr""人类可读描述
toolslist[ToolDeclaration][]从 SKILL.md 解析的声明工具
dccstr"python"目标 DCC 应用
tagslist[str][]分类标签
scriptslist[str][]发现的脚本文件路径
skill_pathstr""技能包目录的绝对路径
versionstr"1.0.0"技能版本
dependslist[str][]依赖的技能名称
metadata_fileslist[str][]metadata/ 目录中的文件
licensestr""许可证标识
compatibilitystr""兼容性描述
allowed_toolslist[str][]允许的工具名称(限制可注册的工具)
groupslist[SkillGroup][]工具分组(渐进式暴露)

Released under the MIT License.