Skip to content

Expose the composable poe-agent runtime as a supported consumable package/API #330

@kamilio

Description

@kamilio

Problem

We want to build application-specific agents using the composable poe-agent runtime: explicitly choose only required plugins and tools, and potentially add our own plugins.

For example, a Slack mention workflow should be able to run an agent with:

  • no project/workspace context or filesystem access
  • no shell or web plugins
  • only a small MCP tool surface (read_slack_thread, set_official, finalize, etc.)
  • optional application-owned plugins later

The underlying package already appears to support the right design via agent().model(...).use(...).mcp(...).run(...) in packages/poe-agent.

Today, external consumers of the published poe-code package cannot use that composition layer directly:

  • @poe-code/poe-agent is marked private and is not available as a normal dependency.
  • poe-code does not export the composable builder/plugins from its public package entrypoint.
  • The available poe-agent provider/CLI wrapper selects configuration indirectly and requires an internal cwd, making it a poor fit for application-owned constrained agents.

Request

Expose the composable poe-agent runtime as a supported consumer-facing API, either by:

  1. publishing @poe-code/poe-agent, or
  2. re-exporting a supported composition surface from poe-code.

The supported API should allow consumers to:

  • construct an agent with agent()
  • choose provider/system plugins explicitly
  • omit filesystem, shell, web, memory, and spawn plugins entirely
  • attach only selected MCP servers/tools
  • supply custom consumer-owned plugins
  • run without requiring a meaningful repository/project cwd

Example desired usage

import {
  agent,
  openaiResponsesPlugin,
  systemPromptPlugin,
} from "@poe-code/poe-agent";

const result = await agent()
  .model("gpt-5.5")
  .use(openaiResponsesPlugin())
  .use(systemPromptPlugin())
  .mcp({
    name: "mention_bot_tools",
    command: "bun",
    args: ["packages/team-bot-tools/src/mcp.ts", "--role", "official"],
  })
  .run(prompt);

Why this matters

The composable runtime is substantially safer and easier to reason about for constrained automation agents than invoking a broad coding-agent wrapper and attempting to disable capabilities via project configuration. It also provides the right extension point for application-specific plugins without forking or depending on local source checkouts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions