AstroResearch/skills/README.md
Asfmq 49784739fa feat: Agent 全栈升级——模块化重构、Hooks/Skills/Memory/SubAgent/Team 子系统、审计与任务持久化
架构重构:
  - Agent Runtime 由单文件拆为 runtime/ 目录 12 模块(熔断/流式执行/Token预算/文件缓存/权限等)
  - Agent Tools 由单文件拆为 tools/ 目录 20+ 模块(filesystem/astro/memory/skill/subagent/team 等)
  - 解析器体系重构(common.rs 836行变更),各解析器同步升级
  - Download 服务重构(562行),反爬策略强化
  - LLM 客户端重构(266行),流式调用优化

  新子系统:
  - Hooks 生命周期系统(9种事件类型,PreToolUse/PostToolUse 支持输入输出拦截)
  - Skills 双层加载系统(system-reminder 轻量注入 + LoadSkillTool 按需加载,notify 文件监听热更新)
  - Memory 项目记忆管理(类型/提取/去重/衰减/保活/选择策略/护栏 7 模块)
  - SubAgent 上下文隔离子代理运行器(独立 ReAct 循环 + Hook 管道)
  - Team 多智能体团队协作(文件 inbox 通信、lead/teammate 协调)
  - TaskBoard DAG 任务依赖管理
  - Trajectory 会话轨迹、Terminal 终止信号、Autonomous 自主模式、Background 异步通知

  数据库:
  - agent_tasks 表(DAG 依赖模式,blocked_by JSON 数组)
  - agent_audit_log 表(工具调用审计:名称/状态/耗时/输出预览)
  - agent_identity 迁移(消息/审计/任务的 agent_name 归属,agent_team_members 团队注册表)

  API:
  - GET /chat/metrics 聚合指标端点
  - GET /chat/sessions/:id/audit 会话审计查询
  - GET /chat/questions + POST /chat/answer 人机交互问答

  工程:
  - 新增依赖:serde_yaml、notify、glob、walkdir、lru
  - Skills 目录含 methodology/plotting/presentation 三个初始 SKILL.md
  - CLAUDE.md 完整项目架构文档
2026-06-17 00:14:02 +08:00

46 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Agent Skills
按需加载的领域知识模块。参考 Claude Code 的三层设计:
- **Layer 1系统提示词**:仅列出 skill 名称(~20 tokens/skill
- **Layer 2load_skill 工具)**LLM 按需调用,注入完整 SKILL.md 内容
## 目录约定
```
skills/{name}/SKILL.md ← 必须是子目录 + SKILL.md
```
当前仅读取 `SKILL.md` 文件。skill 目录下可以放其他文件(如 `references/`、`scripts/`、`assets/`),但当前版本的加载逻辑不会处理它们。
## SKILL.md 格式
```markdown
---
name: skill-name # 唯一标识(必填)
description: 一句话描述 # 必填
context: inline # 已解析但未生效(依赖子代理架构)
allowed-tools: # 已解析但未生效(无权限系统)
- bash
- read
---
# Skill 正文
```
`context``allowed-tools` 字段会被 `parse_frontmatter()` 解析,`LoadSkillTool` 执行时会在返回内容中标记 `context: fork` 的 skill但实际执行行为不变——所有 skill 当前都是内联返回 Markdown 文本。
## 添加新 skill
1. 创建 `skills/{name}/SKILL.md`,填写 frontmatter 和正文
2. 系统提示词在下次请求时自动发现
3. 无需改动代码
## 当前 Skills
| Skill | 状态 |
|-------|------|
| methodology | 就绪 |
| plotting | 占位 |
| presentation | 占位 |