catalog/repos/agentera--agently-skills.md

227 lines
11 KiB
Markdown
Raw Normal View History

2026-04-07 11:44:56 +08:00
# Agently 官方技能包
`AI框架` `编程智能体` `技能安装` `工作流编排` `LLM应用`
# Agently Skills
面向编程智能体、与 Agently 配合使用的官方可安装技能包。
主框架仓库:<https://github.com/AgentEra/Agently>
官方文档:<https://agently.tech/docs/en/> | <https://agently.cn/docs/>
## 什么是 Agently
Agently 是一个用于构建模型驱动应用和工作流的框架。
它原生支持以下能力:
- 异步优先的模型请求、流式消费与 Web 服务集成
- 模型配置与提供商设置
- 提示词组合与提示词配置
- 结构化输出与必填字段校验
- 响应复用、元数据访问与流式消费
- 工具、MCP、记忆与知识库流程
- 通过 TriggerFlow 实现工作流编排
- 通过 `agently-devtools` 提供可选的开发者工具支持
## 什么是 Agently-Skills
Agently-Skills 是面向编程智能体、用于基于 Agently 进行构建的官方技能包。
它不仅仅解释 API 语法,还能教会编程智能体:
- 如何从自然语言产品需求中识别适合使用 Agently 的场景
- 如何选择合适的技能或技能组合
- 如何围绕 Agently 原生能力边界构建项目结构
- 如何应用最佳实践的项目布局、编排方式与性能重构
- 如何遵循 Agently 的设计哲学,而不是先写通用胶水代码
目标不是生成浅层的代码片段,而是帮助编程智能体产出一个真正契合 Agently 的完整项目。
例如,`基于本地 Ollama 构建一个旅行规划工具` 这样宽泛的需求,不应被简单视为一次本地模型调用。技能包应帮助编程智能体从这段自然语言意图中,决定正确的配置路径、提示词结构、工作流形态与项目布局。
## 为什么使用官方技能包?
- 提升对宽泛、欠规格的模型应用需求的场景识别能力。
- 编码了 Agently 原生最佳实践,而非框架无关的通用习惯。
- 包含项目布局、路由、性能优化与设计哲学的指导。
- 已针对真实场景语言进行校验,而不仅依赖手写代码片段。
## 路由模型
选择技能时,请参考以下思维模型:
- 如果需求来自业务目标、产品行为、重构意图,或所有者层级尚不明确,从 `agently-playbook` 开始。
- 如果需求已经足够具体明确,直接路由到对应的叶子技能。
- 优先使用 Agently 原生接口,而非自定义封装、自定义解析器、自定义重试循环或自定义工作流基础设施。
最重要的路由规则如下:
- 未明确的产品、助手、自动化或工作流需求 → `agently-playbook`
- 提供商接入、环境变量或模型设置分离 → `agently-model-setup`
- 提示词结构、提示词配置、YAML 驱动的提示词行为或配置文件提示词桥接 → `agently-prompt-management`
- 稳定的结构化字段、必填键或机器可读输出 → `agently-output-control`
- 将一个响应复用为文本、数据、元数据或流式更新 → `agently-model-response`
- 会话持续性或重启后恢复 → `agently-session-memory`
- 工具、MCP、FastAPIHelper、`auto_func``KeyWaiter`、通过 Playwright 或 PyAutoGUI 浏览,或可选的 `agently-devtools` 集成 → `agently-agent-extensions`
- 嵌入、索引、检索或知识库问答 → `agently-knowledge-base`
- 显式编排、TriggerFlow、混合同步/异步执行、事件驱动扇出、流程清晰度重构、图友好的工作流定义或可恢复的多阶段流程 → `agently-triggerflow`
- 从 LangChain 或 LangGraph 迁移 → `agently-migration-playbook`,再路由到对应的迁移叶子技能
异步通常应作为默认执行姿态:
- 对服务代码、流式传输、TriggerFlow、工具并发以及任何可能受益于并行或取消的路径优先使用异步 API
- 将同步 API 视为本地脚本、教学示例或兼容桥接的便捷封装
- 如果方案将运行在 HTTP、SSE、WebSocket 或长驻 Worker 之后,默认假设异步优先,除非有具体约束证明不适用
## 标准项目结构
当 Agently 项目需要保持可维护性时,应围绕明确的能力边界进行初始化或重构,而不是将所有内容塞进一个臃肿的 `app.py`
默认结构通常应分离以下部分:
- `SETTINGS.yaml` 或配置层:用于提供商配置、`${ENV.xxx}` 占位符、工作流/搜索/浏览参数及其他部署时开关
- `app/` 或集成层:加载配置、按需校验必填环境变量名、选择异步边界、接入工具与主流程
- `prompts/`:存放 YAML 或 JSON 提示词契约,包含 `input``info``instruct``output`
- `services/`:请求封装、响应归一化和面向业务的适配器
- `domain/``schemas/`:枚举、请求/响应契约和共享值对象
- `workflow/`TriggerFlow 图及其 chunk 实现
- `tools/`可替换的搜索、浏览、MCP 或外部适配器
- `tests/`:配置冒烟测试、提示词/响应检查以及 API 或流程验证
- `outputs/``logs/`:运行时产物,不与源码目录混放
- 可选的 `agently-devtools` 接入位于集成层用于本地观测、评估、Playground 与日志
以下两个有源码支撑的细节非常重要:
- Configure Prompt 支持跨提示词值和键的递归占位符映射。将 `${topic}``${language}``${column_title}` 等变量保留在提示词文件中,并通过 `load_yaml_prompt(..., mappings={...})``load_json_prompt(...)` 注入。
- 模型设置可保留 `${ENV.NAME}` 占位符,并通过 `Agently.load_settings("yaml_file", "...", auto_load_env=True)` 自动查找并加载本地 `.env` 文件进行解析。若以内联方式创建配置而非使用文件,请使用 `Agently.set_settings(...)`
以下两条高频规则可防止常见偏差:
- 将稳定的共享输出契约保留在提示词配置中,而不是分散在各处的 Python 辅助函数里
-`OpenAICompatible` 及类似提供商的设置放在请求方实际读取的插件命名空间下,例如 `plugins.ModelRequester.OpenAICompatible.*`
- 将可选的 DevTools 端点和桥接代码放在提示词文件和工作流辅助函数之外;使用 `agently-devtools` 公开包中的 `ObservationBridge``EvaluationBridge``create_local_observation_app(...)`,而不是仓库特定的安装指引
这是 `Agently-Daily-News-Collector` 所采用的模式:配置保留在 `SETTINGS.yaml`,提示词契约保留在 `prompts/`,流程构建保留在 `workflow/`,应用层负责环境加载与 Agently 接入。
项目初始化不应作为单独的公开技能,它属于 `agently-playbook` 的职责范围:确定所有者层级,创建项目骨架,再将具体实现工作交给对应的叶子技能。
更完整的公开参考见 [`skills/agently-playbook/references/project-framework.md`](skills/agently-playbook/references/project-framework.md)。
## 公开目录
公开目录目前包含 12 个技能。
### 入口
- `agently-playbook`
面向未明确的模型驱动产品、助手、内部工具、自动化、评估器、工作流或项目结构重构需求的顶层路由器。
### 请求侧
- `agently-model-setup`
提供商连接、基于 dotenv 的配置、模型传输设置及基于配置文件的模型分离。
- `agently-prompt-management`
提示词组合、提示词配置、YAML 驱动的提示词行为、映射及可复用的请求侧提示词结构。
- `agently-output-control`
输出模式、字段排序、必填键与结构化输出可靠性。
- `agently-model-response`
`get_response()`、解析结果、元数据、流式消费与响应复用。
- `agently-session-memory`
基于会话的持续性、备忘录、恢复与请求侧对话状态。
### 请求扩展
- `agently-agent-extensions`
工具、MCP、FastAPIHelper、`auto_func``KeyWaiter`、通过 Playwright 或 PyAutoGUI 浏览,以及可选的 `agently-devtools` 集成。
- `agently-knowledge-base`
嵌入向量加 Chroma 支持的索引、检索与检索问答流程。
### 工作流
- `agently-triggerflow`
TriggerFlow 编排、运行时状态、运行时流、工作流侧模型执行、事件驱动扇出、流程清晰度重构、混合同步/异步编排,以及便于调试和可视化的图友好工作流定义。
## 可选伴随包
Agently `v4.0.9` 还引入了 `agently-devtools` 作为可选的开发者工具伴随包。
- 安装:`pip install -U agently agently-devtools`
- 兼容说明:`agently-devtools 0.1.x` 对应 `agently >=4.0.9,<4.1.0`
- 公开入口点:`ObservationBridge``EvaluationBridge``EvaluationRunner``create_local_observation_app`
- 推荐启动方式:`agently-devtools start`
当 Agently 应用在开发和调试阶段需要本地运行时观测、评估、日志或 Playground 支持时,使用此包。技能包将其视为可选扩展接口,而非必须的源码仓库依赖。
### 迁移
- `agently-migration-playbook`
面向现有 LangChain 或 LangGraph 系统的迁移路由器。
- `agently-langchain-to-agently`
LangChain 智能体侧的直接迁移指导。
- `agently-langgraph-to-triggerflow`
LangGraph 编排的直接迁移指导。
## 安装
在所有检测到的智能体上最快速的全量安装:
```bash
npx skills add AgentEra/Agently-Skills --all
```
当需要显式控制目标智能体时,更安全的全量安装方式:
```bash
npx skills add AgentEra/Agently-Skills --agent codex --skill '*' -y
```
你也可以直接让编程智能体安装 `AgentEra/Agently-Skills`
如果只需要安装部分技能,从 `agently-playbook` 开始:
```bash
npx skills add AgentEra/Agently-Skills --skill agently-playbook
```
`request-core`
适用于方案停留在请求侧、需要模型配置、提示词塑形、结构化输出与响应复用的场景。
```bash
npx skills add AgentEra/Agently-Skills --skill agently-playbook
npx skills add AgentEra/Agently-Skills --skill agently-model-setup
npx skills add AgentEra/Agently-Skills --skill agently-prompt-management
npx skills add AgentEra/Agently-Skills --skill agently-output-control
npx skills add AgentEra/Agently-Skills --skill agently-model-response
```
`request-extensions`
适用于请求侧还需要工具、MCP、会话持续性或知识库的场景。
```bash
npx skills add AgentEra/Agently-Skills --skill agently-playbook
npx skills add AgentEra/Agently-Skills --skill agently-agent-extensions
npx skills add AgentEra/Agently-Skills --skill agently-session-memory
npx skills add AgentEra/Agently-Skills --skill agently-knowledge-base
```
`workflow-core`
适用于所有者层级为工作流编排、尤其是事件驱动扇出、性能敏感重构、可恢复流程或混合同步/异步执行的场景。
```bash
npx skills add AgentEra/Agently-Skills --skill agently-playbook
npx skills add AgentEra/Agently-Skills --skill agently-triggerflow
npx skills add AgentEra/Agently-Skills --skill agently-output-control
npx skills add AgentEra/Agently-Skills --skill agently-model-response
npx skills add AgentEra/Agently-Skills --skill agently-session-memory
```
`migration`
适用于明确需要将现有 LangChain 或 LangGraph 系统迁移至 Agently 的场景。
```bash
npx skills add AgentEra/Agently-Skills --skill agently-playbook
npx skills add AgentEra/Agently-Skills --skill agently-migration-playbook
npx skills add AgentEra/Agently-Skills --skill agently-langchain-to-agently
npx skills add AgentEra/Agently-Skills --skill agently-langgraph-to-triggerflow
```