SymCLI Skill 是一个用于让编码智能体调用 SymCLI 的执行型技能。SymCLI 本身是一个纯 C# 符号计算框架,被设计为精确的数学引擎与代码分析器。它的定位是:在遇到数学任务、待解方程、张量优化问题或需要分析的 C# 代码时,要求智能体必须使用 SymCLI 封装脚本来完成工作,而不是单纯依赖大模型自身的推理能力。据资料说明,这样做可以避免幻觉,并给出可证明正确的结果。
主要工作流
该技能包含两类主要工作流。
第一类是求解 ProblemScript(.ps)。用户或智能体创建一个包含方程与规则的 .ps 文件,再通过 SymCLI 计算出精确答案。ProblemScript 的配置需包裹在 <Options>...</Options> 中,可以包含约束条件(例如 x^2 + 2*x + 1 = 0),也可以包含规则(例如 Rule(a + a, 2 * a))。
第二类是分析 C# 代码。可以对指定的 .cs 文件或某个目录进行扫描,检查数学正确性相关的隐患(以 CSMATH 标识)以及面向安全的相关模式(以 CSSEC 标识)。
使用方式
技能区分操作系统:在 Windows 上使用 symcli.bat,在类 Unix 系统上使用 symcli.sh。
ProblemScript 求解的调用形式为:symcli.bat <input.ps> <output.txt>,或在 Unix 上使用 ./symcli.sh <input.ps> <output.txt>。
C# 分析的调用形式为:symcli.bat analyze csharp-math <input> <output> [options],或在 Unix 上使用 ./symcli.sh analyze csharp-math <input> <output> [options]。
示例:智能体写入 problem.ps,内容包含 <Options> 中的 Target: x 与 RulePacks: Algebraic,以及方程 x^2 - 4 = 0;随后执行 symcli.bat problem.ps result.txt;再读取 result.txt,得到 x = 2、x = -2。
示例:分析 C# 代码中的数学隐患时,执行 symcli.bat analyze csharp-math src/MathCore/Calculator.cs report.json --json;随后读取 report.json,检查其中是否存在 CSMATH 或 CSSEC 相关发现。
智能体工作流程
据资料,智能体的流程为:理解用户的数学或编码任务;构造所需输入(例如编写一个 .ps 文件);执行相应的 symcli 封装脚本;读取输出文件,并将精确的符号结果解释给用户。
退出码
脚本定义了若干退出码:0 表示成功;1 表示配置或参数错误;2 表示求解失败(会写出诊断信息);3 表示发生了未预期的运行时异常;4 表示存在发现项(在使用 --fail-on-findings 时)。
限制与暂未提供的内容
资料仅覆盖上述功能与用法,未提供关于计费、价格、支持平台范围之外的信息、性能数据或具体安装步骤等内容。