Hands(智能手 / 自主执行单元)是 OpenFang 的核心创新 —— 一种用于构建自主智能体的全新基础原语。与其他所有智能体框架不同,你不再需要和智能体对话、等待它回复,Hands 会直接为你工作。它们按计划自动运行,持续积累知识,并将结果汇报到你的控制面板。你只需激活一个 Hand,再随时查看进度,就像管理一名员工一样。Hands 是经过精心设计、自包含的自主化程序包,它将配置、专家知识、执行流程与工具调用整合为一个可直接部署的独立单元。在自动化工作流中,OpenFang 的 Hand 就像一位为你 7×24 小时待命的数字员工。它可以按照预设计划自主执行任务(如定时搜索、内容整理、报表生成),并在完成后向你汇报结果。
一、理解 Hand 的“基因”
每个 Hand 都是一个独立的能力包,由以下核心部件构成:
| 组件 | 作用 | 类比 |
HAND.toml | 核心配置文件,声明身份、权限、参数和LLM行为 | 职位说明书 |
| System Prompt | 多阶段操作手册,指导 Hand 一步步完成任务 | 工作手册 / SOP |
SKILL.md | 可选的领域知识库,运行时动态注入上下文 | 专业知识库 |
| Guardrails | 安全护栏,敏感操作需人工审批 | 安全审计流程 |
理解这些组件后,我们就可以开始编写自己的 Hand 了。
二、编写你的第一个 Hand:每日科技摘要
假设我们要创建一个名为“每日科技摘要”的 Hand,它每天上午 9 点自动搜索并总结最新的科技新闻。
1. 创建目录与文件
在 OpenFang 的配置目录下(例如 ~/.openfang/hands/)新建一个以 Hands 名称命名的文件夹,并在文件夹下按照场景创建子文件夹及 HAND.toml:
mkdir -p ~/.openfang/hands/industry-reseaercher
cd ~/.openfang/hands/industry-reseaercher
touch HAND.toml2. 编写 HAND.toml
自定义一个 Hand 的过程,本质上就是为这位“员工”撰写一份清晰的 职位说明书 —— 也就是 HAND.toml 配置文件。
[hand]
id = "行业分析"
name = "行业分析 Hand"
description = "资深行业分析师,拥有超过 15 年的行业研究经验,专精于科技、消费、金融、能源等领域。分析风格严谨、数据驱动,并能够结合宏观环境与微观企业动态,输出结构清晰、洞察深刻的行业分析报告"
category = "数据"
icon = "receipt"
version = "1.0.0"
tools = ["file_read", "file_write", "file_list", "web_fetch", "web_search", "memory_store", "memory_recall", "schedule_create", "schedule_list", "schedule_delete", "knowledge_add_entity", "knowledge_add_relation", "knowledge_query", "event_publish"]
[settings]
key = "目标行业"
label = "目标行业"
description = "What to monitor (company name, person, technology, market, topic)"
setting_type = "text"
default = ""
collect_deepth = "全面"
cron = "0 * * 1-5"
output_format = { type = "string", default = "docx", options = ["docx", "pdf", "csv", "json", "xlsx"] }
auto_validate = { type = "bool", default = true }
confidence_threshold = { type = "float", default = 0.95, min = 0.5, max = 1.0 }
[agent]
name = "collector-hand"
description = "资深行业分析师,拥有超过 15 年的行业研究经验,专精于科技、消费、金融、能源等领域。分析风格严谨、数据驱动,并能够结合宏观环境与微观企业动态,输出结构清晰、洞察深刻的行业分析报告"
system_prompt = "专业行业分析师 Agent,擅长行业趋势、竞争格局、财务与战略分析"
module = "builtin:chat"
provider = "default"
model = "default"
max_tokens = 128000
temperature = 0.3
max_iterations = 50注意:官方文档滞后,部分内容按照官方文档配置的话,会导致无法安装。例如官方文档中tools是在[hand.requires]下,实际上应用中已经没有这个标签了,否则会导致失败。另外也可以参考openfang的源码来写hand,路径为.openfang/crates/openfang-hands/bundled/
3.编写SKILL.md文件
skill.md文件是一份技能描述文档,告诉hand如何进行工作,下面是一份skill.md的样例。
---
name: 行业分析
description: 系统化进行行业分析的专业技能,涵盖市场环境、竞争格局、关键趋势等维度,输出结构化报告。
version: 1.0.0
author: Assistant
tags: [行业研究, 战略分析, 市场分析]
---
# 行业分析师 — 专家技能
## 目标
为用户提供标准、全面、深入的行业分析,帮助理解行业的现状、驱动力、竞争态势及未来趋势。分析应基于最新数据,逻辑清晰,结论可支持决策。
## 适用场景
- 投资决策前的行业尽职调查
- 企业战略规划与市场进入评估
- 学术研究或行业报告撰写
- 竞争对手分析与机会识别
## Section 1: 工作流程
1. **明确分析范围**
- 确认行业名称(如:新能源汽车、云计算、高端医疗器械等)
- 界定地域范围(全球/区域/国家)
- 明确时间跨度(当前状态/历史回顾/未来预测)
2. **数据收集与验证**
- 优先使用权威机构数据(行业协会、政府统计、券商研报、企业年报)
- 交叉验证关键数据点,避免单一来源偏差
- 标注数据来源与时效性
3. **结构化分析**
按照以下框架逐一展开,可根据行业特性调整侧重点:
### 3.1 行业概况
- 行业定义与分类
- 发展历程与阶段
- 行业生命周期(导入/成长/成熟/衰退)
### 3.2 宏观环境分析(PESTLE)
- **P**olitical:政策法规、政府补贴、贸易壁垒
- **E**conomic:GDP 增速、人均收入、利率、通胀
- **S**ocial:人口结构、消费习惯、生活方式变迁
- **T**echnological:技术突破、研发投入、专利情况
- **L**egal:环保法规、行业标准、反垄断
- **E**nvironmental:碳排放要求、资源约束、可持续性
### 3.3 市场规模与增长
- 市场总体规模(TAM、SAM、SOM)
- 生命周期、行业阶段、成熟度
- 历史增长率与未来 CAGR 预测
- 细分市场结构(按产品、应用、区域)
### 3.4 竞争格局分析
- 市场集中度(CRn、HHI 指数)
- 主要参与者及市场份额
- 波特五力模型:
- 供应商议价能力
- 买方议价能力
- 新进入者威胁
- 替代品威胁
- 同业竞争强度
### 3.5 价值链与商业模式
- 上下游构成与关键环节
- 主要企业的盈利模式
- 利润池分布与价值获取点
### 3.6 关键成功因素(KSF)
- 技术壁垒、品牌效应、规模经济
- 渠道控制、客户关系、政策资源
### 3.7 发展趋势与机遇挑战
- 技术演进方向、趋势预测、未来展望、技术路线图
- 消费者需求变化
- 潜在颠覆因素(新技术、新模式)
- 行业面临的主要风险(政策、供应链、周期)
4. **综合研判与结论**
- 总结行业的吸引力(高/中/低)
- 给出战略启示(进入/扩张/退出/转型)
- 列出关键不确定性因素供进一步验证
- 如遇数据缺失,需明确说明“该数据未公开,根据……推算”或“基于……趋势判断”
- 分析结论需保持中立,避免主观臆断
- 若用户未指定地域,默认分析中国市场;若未指定时间,默认聚焦当前年度并预测未来3-5年
5. **输出报告**
- 结构清晰,包含摘要、正文、数据附录
- 使用图表辅助说明(市场规模趋势、竞争格局矩阵等)
- 所有数据标注来源,关键假设需说明依据
## 输出格式
- **格式**:Markdown 文档,必要时附带表格、图表引用
- **长度**:根据需求,基础分析 800–1500 字,深度分析可扩展至 3000 字以上
- **附录**:包含数据来源列表、重要术语解释、方法说明
## 示例输入
> 请分析中国工业机器人行业,包括市场规模、竞争格局、政策环境及未来五年趋势。
## 示例输出结构
```markdown
# 中国工业机器人行业分析报告(2025)
## 摘要
- 核心观点:市场处于高速成长期,国产替代加速,未来五年 CAGR 预计 15%...
## 1. 行业概况
...
## 2. 宏观环境分析
...
## 3. 市场规模与细分
...
## 4. 竞争格局
...
## 5. 发展趋势与建议
...
## 数据来源
...
4. 部署与激活
将 industry-researcher 文件夹放置在 OpenFang 的 hands 目录下(通常就是 ~/.openfang/hands/),然后在命令行中激活:
openfang hand install ./hands/industry-researcher/
如果一切顺利,你的 Hand 就会按照设置开始工作。你可以通过 OpenFang 的仪表盘查看运行状态和指标。
三、最佳实践与进阶技巧
最小权限原则
只给 Hand 分配完成任务所必需的 tools。例如,一个内容摘要 Hand 不需要浏览器自动化工具。这样能显著降低意外操作的风险。
善用参数化配置
通过 [settings] 部分暴露可调参数,让用户(或你自己)无需修改配置文件就能调整行为。比如时区、搜索关键词、输出格式等。
利用 SKILL.md 注入领域知识
如果你的 Hand 需要特定领域的深度知识(例如财务分析规则、法律条款、特定编程框架的最佳实践),可以在同级目录下创建 SKILL.md 文件,写入这些知识。Hand 在运行时会自动将其注入上下文。
研究内置 Hand
OpenFang 自带了许多功能强大的内置 Hand,例如:
Researcher:深度网络研究Collector:定时情报收集Browser:网页自动化与交互
你可以查看它们的 HAND.toml 和 SKILL.md 作为学习范例。
四、常见问题
Q:Hand 可以定时执行吗?
A:可以。在 OpenFang 中可以通过调度器(cron 风格)配置 Hand 的触发时间,或在激活时使用 --schedule 参数。
Q:如何让 Hand 在完成任务后通知我?
A:可以在 System Prompt 中要求它生成报告,并通过内置的通知工具(如邮件、Webhook)发送。OpenFang 也支持在 dashboard 中配置告警规则。
Q:我能分享自己做的 Hand 吗?
A:当然。你可以将 Hand 文件夹打包,上传到 FangHub(OpenFang 的社区市场)与大家分享。
五、总结
自定义 OpenFang Hand 的完整流程非常简单:
编写
HAND.toml(身份、权限、提示词、参数)部署(放入
hands目录)激活(
openfang hand activate <hand_id>)
一旦激活,你就拥有了一位不知疲倦、7×24 小时在线的 AI 员工。无论是日常新闻摘要、监控网站变动,还是自动生成报表,Hand 都能轻松胜任。