Context
PR #590 / feature/lark-bot removes the in-tree agent_builder.create_agent template=<name> recipe path. The two existing templates (daily, social_media) are gone:
daily is migrated to the Ornn-hosted chrono-ai-daily skill — the LLM finds it via ornn_search_skills, loads it via use_skill, and runs it inline using existing tools (nyxid_proxy).
social_media is deleted with no replacement in this repo. The recipe (workflow YAML with human_approval + twitter_publish + cron schedule) used to live as AgentBuilderTemplates.TryBuildSocialMediaSpec and was wired through AgentBuilderTool.CreateSocialMediaAgentAsync.
Goal
Make scheduled-agent recipes (workflow YAML, schedule, delivery binding, API key minting, preflight) curate-able on Ornn rather than in this repo. The vision: an Ornn skill author writes a SKILL.md with the workflow YAML and the orchestration steps; the LLM in the bot loads the skill and executes the steps using primitive aevatar tools.
What's missing on the LLM tool surface
Today's LLM-callable tools cover most primitives:
nyxid_api_keys — mint with allowed_service_ids
agent_delivery_targets — bind outbound delivery
channel_registrations — manage Lark inbound
workflow_create_def / update_def / read_def / list_defs — global workflow definitions
nyxid_proxy — generic HTTP fallback
But scope-scoped workflow upsert is not exposed as an LLM tool. `CreateSocialMediaAgentAsync` calls `IScopeWorkflowCommandPort.UpsertAsync(ScopeWorkflowUpsertRequest)` directly — there's no equivalent tool the LLM can use to install a workflow into a scope.
Proposed work
- Expose `IScopeWorkflowCommandPort` (and read-side: list/get) as LLM-callable tools — e.g., `scope_workflows_upsert`, `scope_workflows_list`, `scope_workflows_get`. The tools should accept the same primitive shape (workflow_id, workflow YAML, scope_id, etc.) that the existing application service consumes.
- Expose the WorkflowAgentGAgent lifecycle (initialize + trigger) as LLM-callable tools, or fold them into existing `agent_builder` lifecycle tools (`create_agent` becomes scope_id+workflow_actor_id-driven instead of template-driven).
- Re-introduce a `social-media` Ornn skill that uses the new tools to install + bind + run the equivalent workflow. The skill markdown owns the YAML and the ordering of primitive calls.
Acceptance
- An Ornn skill author can install a scheduled workflow agent end-to-end without touching this repo.
- `agent_builder.create_agent` is either fully template-agnostic or removed.
- The `social-media` skill on Ornn produces the same runtime behavior as the deleted in-tree recipe.
Cross-references
- Removed-in-this-PR: `AgentBuilderTemplates.TryBuildSocialMediaSpec`, `AgentBuilderTool.CreateSocialMediaAgentAsync`, `/social-media` slash command, `open_social_media_form` action, related card-flow + tests, and the in-tree `TwitterPublishModule` if orphaned after the deletion.
Context
PR #590 /
feature/lark-botremoves the in-treeagent_builder.create_agent template=<name>recipe path. The two existing templates (daily,social_media) are gone:dailyis migrated to the Ornn-hostedchrono-ai-dailyskill — the LLM finds it viaornn_search_skills, loads it viause_skill, and runs it inline using existing tools (nyxid_proxy).social_mediais deleted with no replacement in this repo. The recipe (workflow YAML withhuman_approval+twitter_publish+ cron schedule) used to live asAgentBuilderTemplates.TryBuildSocialMediaSpecand was wired throughAgentBuilderTool.CreateSocialMediaAgentAsync.Goal
Make scheduled-agent recipes (workflow YAML, schedule, delivery binding, API key minting, preflight) curate-able on Ornn rather than in this repo. The vision: an Ornn skill author writes a SKILL.md with the workflow YAML and the orchestration steps; the LLM in the bot loads the skill and executes the steps using primitive aevatar tools.
What's missing on the LLM tool surface
Today's LLM-callable tools cover most primitives:
nyxid_api_keys— mint withallowed_service_idsagent_delivery_targets— bind outbound deliverychannel_registrations— manage Lark inboundworkflow_create_def/update_def/read_def/list_defs— global workflow definitionsnyxid_proxy— generic HTTP fallbackBut scope-scoped workflow upsert is not exposed as an LLM tool. `CreateSocialMediaAgentAsync` calls `IScopeWorkflowCommandPort.UpsertAsync(ScopeWorkflowUpsertRequest)` directly — there's no equivalent tool the LLM can use to install a workflow into a scope.
Proposed work
Acceptance
Cross-references