关于 cs-algorithms
cs-algorithms 是面向 OpenClaw 的技能,可帮助编码 Agent 实现、分析和讲解计算机科学算法,涵盖常见算法类别与复杂度分析,并提供命令行和 Python API 用法。
主要功能
- 01排序与搜索算法
- 02BFS、DFS 和 A* 遍历
- 03动态规划方法
- 04贪心与回溯方法
- 05Big-O 复杂度分析
适用场景
- 01实现排序或搜索程序
- 02探索图中的路径
- 03检查算法的时间与空间成本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill cs-algorithms安装后在 Claude Code 中输入/cs-algorithms确认已加载。
详细介绍
cs-algorithms
目的
此技能为 OpenClaw 提供用于实现和分析计算机科学算法的工具,重点涵盖排序、搜索、图遍历、动态规划、贪心算法、回溯和 Big-O 复杂度分析。可用它生成代码片段、优化算法,或在回复中解释概念。
适用场景
在处理编码任务中的算法问题时使用此技能,例如优化大型数据集的搜索、解决网络中的图问题,或分析对性能要求较高的应用中的时间复杂度。也可用于教学类回复、代码审查,或用户询问特定算法(如用于路径查找的 BFS)时。
主要功能
- 排序:实现快速排序、归并排序或冒泡排序,并支持配置基准值或检查稳定性。
- 搜索:二分搜索、线性搜索,并可选择递归或迭代版本。
- 图遍历:用于路径查找的 BFS、DFS 和 A*,包括处理加权图。
- 动态规划:使用记忆化和制表法解决背包或最长公共子序列等问题。
- 贪心算法和回溯:在回溯约束下解决调度或子集和问题。
- Big-O 分析:计算并解释时间/空间复杂度,例如归并排序的 O(n log n)。
- 其他:处理边界情况,例如已排序数组或非连通图。
使用模式
要使用此技能,可通过 OpenClaw 的 API 或 CLI 调用,并指定算法类型和输入。务必传递必需参数,例如数据数组或图结构。例如,可将它与其他技能串联,并将结果输出到变量。通过在环境变量中设置 $OPENCLAW_API_KEY 进行身份验证后再调用。在代码中导入此技能并直接调用方法;在 CLI 中使用子命令快速执行。
常用命令/API
使用 OpenClaw CLI 直接运行,或使用 Python API 集成。身份验证需要将 $OPENCLAW_API_KEY 设置为环境变量。
-
CLI 示例:
openclaw run cs-algorithms --algorithm sort --input "[1,3,2]" --method quick使用快速排序对数组进行排序。 -
API 示例:
import openclaw openclaw.set_api_key(os.environ['OPENCLAW_API_KEY']) sorted_array = openclaw.algorithms.sort([1,3,2], method='quick') -
常用标志:
--algorithm [sort|search|bfs|...]:指定要运行的算法。--input [JSON string]:提供输入数据,例如 JSON 格式的数组或图。--config { "method": "quick", "depth": 5 }:用于指定递归深度等参数的 JSON 配置。
-
API 端点:
openclaw.algorithms.sort(array, method='quick'):返回排序后的数组。openclaw.algorithms.bfs(graph, start_node):返回遍历过的节点。- 对于动态规划:
openclaw.algorithms.dp_solve(problem='knapsack', items=[...], capacity=10)。
配置格式基于 JSON;对于图,请使用邻接表,例如 {"A": ["B", "C"]}。
集成说明
将 OpenClaw 添加为项目依赖项(例如,pip install openclaw)即可集成。在环境中使用 export OPENCLAW_API_KEY=your_key 设置身份验证。若要异步使用,请将 API 调用封装在异步函数中,例如 await openclaw.algorithms.bfs_async(graph)。确保验证输入(例如,数组必须是列表),并将输出作为 JSON 处理。如果与其他技能结合使用,请通过 OpenClaw 的输出管道传递结果,例如 openclaw run cs-algorithms --output var1 | openclaw run another-skill --input var1。
错误处理
常见错误包括输入无效(例如,为排序操作提供非数组输入)或身份验证失败。可通过 try-except 代码块捕获调用中的 InvalidInputError。对于 CLI,错误会返回非零退出码,并附带类似 "Error: Array must be a list" 的消息。在 API 中捕获异常:
try:
result = openclaw.algorithms.sort([1, 'a'], method='quick') # Type mismatch error
except openclaw.errors.InvalidInputError as e:
print(f"Handle error: {e} - Ensure all elements are numbers")
调用前务必验证输入,例如使用 isinstance(array, list)。对于 Big-O 分析,如果无法计算复杂度(例如,存在无限循环),请通过设置超时来处理。
具体使用示例
-
对数组排序:要对用户提供的列表排序,请使用:
openclaw run cs-algorithms --algorithm sort --input "[5,2,9,1]" --method mergesort"。此命令会输出[1,2,5,9]。代码示例:import openclaw openclaw.set_api_key(os.environ['OPENCLAW_API_KEY']) sorted_list = openclaw.algorithms.sort([5,2,9,1], method='mergesort') print(sorted_list) # [1, 2, 5, 9]分析复杂度:添加
--analyze-complexity标志可获得“O(n log n) 时间”。 -
在图上执行 BFS:要遍历图,请运行:
openclaw run cs-algorithms --algorithm bfs --input '{"A": ["B"], "B": ["C"]}' --start "A"。输出:["A", "B", "C"]。API 示例:graph = {"A": ["B"], "B": ["C"]} traversal = openclaw.algorithms.bfs(graph, "A") print(traversal) # ['A', 'B', 'C']可用于 AI 响应中的路径查找。
图关系
- 相关集群:computer-science(算法主题的父集群)。
- 相关技能:data-structures(用于数组/图实现)、machine-learning(用于优化中的 A*)。
- 标签关联:“algorithms”关联优化技能;“sorting”和“searching”关联注重效率的工具;“complexity”关联性能分析技能。