Agent 技能排查
- 作者仓库星标 77,599
- 作者仓库 lobehub
Agent Signal
Use this skill to implement event-driven background work for agents without coupling the work to the foreground chat request.
Agent Signal has one consistent shape:
source event -> signal interpretation -> action execution -> built-in result signals
Start Here
- Read
references/architecture.mdto map the package boundary, runtime queue, scope model, and async workflow handoff. - Read
references/handlers.mdbefore writing any new policy, source handler, signal handler, or action handler. - Read
references/observability.mdwhen you need tracing, metrics, debugging, or workflow snapshot visibility.
Use The Right Entry Point
- Use
emitAgentSignalSourceEvent(...)when a server-owned producer should execute the pipeline immediately. - Use
executeAgentSignalSourceEvent(...)when a worker or controlled backend path already owns execution timing and may inject a runtime guard backend. - Use
enqueueAgentSignalSourceEvent(...)when the caller should return quickly and let Upstash Workflow process the event out-of-band. - Use
emitAgentSignalSourceEventWithStore(...)for isolated tests or evals that should avoid ambient Redis state.
Read:
src/server/services/agentSignal/index.tssrc/server/workflows/agentSignal/index.tssrc/server/workflows/agentSignal/run.ts
Core Model
source: A normalized fact that happened. Sources come from producers such as runtime lifecycle events, user messages, or bot ingress.signal: A semantic interpretation derived from one source or from another signal. Signals express meaning, routing, or policy state.action: A concrete side effect planned from one signal. Actions do the work.policy: An installable middleware bundle that registers source, signal, and action handlers.procedure: Not a distinct runtime node. Treat "procedure" as the end-to-end flow for one use case: ingress source, matching handlers, planned actions, execution result, and observability.
Keep the boundaries strict:
- Add a new
sourcewhen the outside world produced a new event. - Add a new
signalwhen the system needs a reusable semantic interpretation. - Add a new
actionwhen the runtime needs a concrete side effect. - Add or update a
policywhen you are wiring those pieces together.
Implementation Workflow
- Decide whether the use case is synchronous or quiet background work.
- Define or reuse a source type in
src/server/services/agentSignal/sourceTypes.ts. - Define or reuse signal and action types in
src/server/services/agentSignal/policies/types.ts. - Implement handlers with
defineSourceHandler,defineSignalHandler, ordefineActionHandler. - Bundle handlers with
defineAgentSignalHandlers(...). - Register the policy in
src/server/services/agentSignal/policies/index.tsand pass it into the runtime factory if needed. - Add or update ingress code that emits or enqueues the source event.
- Add observability and tests before considering the flow complete.
Default Reading Set
- Shared semantic core:
packages/agent-signal/src/index.tspackages/agent-signal/src/base/builders.tspackages/agent-signal/src/base/types.ts - Server-owned runtime and middleware:
src/server/services/agentSignal/runtime/AgentSignalRuntime.tssrc/server/services/agentSignal/runtime/AgentSignalScheduler.tssrc/server/services/agentSignal/runtime/middleware.tssrc/server/services/agentSignal/runtime/context.ts - Existing policy example:
src/server/services/agentSignal/policies/analyzeIntent/index.tssrc/server/services/agentSignal/policies/analyzeIntent/feedbackSatisfaction.tssrc/server/services/agentSignal/policies/analyzeIntent/feedbackDomain.tssrc/server/services/agentSignal/policies/analyzeIntent/feedbackAction.tssrc/server/services/agentSignal/policies/analyzeIntent/actions/userMemory.ts - Observability:
src/server/services/agentSignal/observability/projector.tssrc/server/services/agentSignal/observability/traceEvents.tspackages/observability-otel/src/modules/agent-signal/index.ts
Implementation Rules
- Reuse existing source, signal, and action types before adding new ones.
- Keep source handlers focused on interpretation and fan-out, not heavy side effects.
- Keep action handlers responsible for side effects, idempotency, and executor-style result reporting.
- Use stable ids and idempotency keys when the same source can arrive more than once.
- Preserve scope discipline. The runtime uses
scopeKeyto serialize related background work. - Prefer the dedicated shared package types and builders from
@lobechat/agent-signalfor normalized nodes and result contracts. - Add focused tests near the touched runtime, policy, or store module. Existing tests under
src/server/services/agentSignal/**/__tests__are the reference pattern.
References
- Architecture and boundaries:
references/architecture.md - Writing handlers and policies:
references/handlers.md - Observability, metrics, and debugging:
references/observability.md
- 流狐分类
- AI 智能
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @lobehub · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- Node.js
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Read references/architecture.md to map the package boundary, runtime queue, scope model, and async workflow handoff. Read references/handlers.md before writing any new policy, source handler, signal handler, or action handler.
Use emitAgentSignalSourceEvent(...) when a server-owned producer should execute the pipeline immediately. Use executeAgentSignalSourceEvent(...) when a worker or controlled backend path already owns execution timing and may inject a runtime guard backend.
source: A normalized fact that happened. Sources come from producers such as runtime lifecycle events, user messages, or bot ingress. signal: A semantic interpretation derived from one source or from another signal. Signals express meaning, routing, or policy…
Decide whether the use case is synchronous or quiet background work. Define or reuse a source type in src/server/services/agentSignal/sourceTypes.ts. Define or reuse signal and action types in src/server/services/agentSignal/policies/types.ts.
Shared semantic core: packages/agent-signal/src/index.ts packages/agent-signal/src/base/builders.ts
Reuse existing source, signal, and action types before adding new ones. Keep source handlers focused on interpretation and fan-out, not heavy side effects. Keep action handlers responsible for side effects, idempotency, and executor-style result reporting.
# Agent Signal
Use this skill to implement event-driven background work for agents without coupling the work to the foreground chat request.
Agent Signal has one consistent shape:
`source event` -> `signal interpretation` -> `action execution` -> built-in result signals
## Start Here
1. Read `references/architecture.md` to map the package boundary, runtime queue, scope model, and async workflow handoff.
2. Read `references/handlers.md` before writing any new policy, source handler, signal handler, or action handler.
3. Read `references/observability.md` when you need tracing, metrics, debugging, or workflow snapshot visibility.
## Use The Right Entry Point
- Use `emitAgentSignalSourceEvent(...)` when a server-owned producer should execute the pipeline immediately.
- Use `executeAgentSignalSourceEvent(...)` when a worker or controlled backend path already owns execution timing and may inject a runtime guard backend.
- Use `enqueueAgentSignalSourceEvent(...)` when the caller should return quickly and let Upstash Workflow process the event out-of-band.
- Use `emitAgentSignalSourceEventWithStore(...)` for isolated tests or evals that should avoid ambient Redis state.
Read:
- `src/server/services/agentSignal/index.ts`
- `src/server/workflows/agentSignal/index.ts`
- `src/server/workflows/agentSignal/run.ts`
## Core Model
- `source`: A normalized fact that happened. Sources come from producers such as runtime lifecycle events, user messages, or bot ingress.
- `signal`: A semantic interpretation derived from one source or from another signal. Signals express meaning, routing, or policy state.
- `action`: A concrete side effect planned from one signal. Actions do the work.
- `policy`: An installable middleware bundle that registers source, signal, and action handlers.
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Start Here → Use The Right Entry Point → Core Model → Implementation Workflow → Default Reading Set → Implementation Rules
要点 -> Use this skill to implement event-driven background work for agents without coupling the work to the foreground chat request. · 1. Read references/architecture.md to map the package boundary, runtime queue, scope model, and async workflow handoff. · - Use emitAgentSignalSourceEvent(...) when a server-owned producer should execute the pipeline immediately. · - source: A normalized fact that happened. · - Add a new source when the outside world produced a new event. · 1. Decide whether the use case is synchronous or quiet background work. · - Reuse existing source, signal, and action types before adding new ones.
文件/命令 -> source event · signal interpretation · action execution · references/architecture.md · references/handlers.md · references/observability.md · emitAgentSignalSourceEvent(...) · executeAgentSignalSourceEvent(...)
内容 SHA-256 -> 09ca41869e4c
方法与流程
适用与边界
原文中的明确线索
source event、signal interpretation、action execution、references/architecture.md、references/handlers.md、references/observability.md、emitAgentSignalSourceEvent(...)、executeAgentSignalSourceEvent(...)