Skip to content

feat(appkit): add createAgent wrapper, agent-app, and API docs#286

Closed
MarioCadenas wants to merge 1 commit intoagent/3-plugin-contextfrom
agent/4-createagent-apps
Closed

feat(appkit): add createAgent wrapper, agent-app, and API docs#286
MarioCadenas wants to merge 1 commit intoagent/3-plugin-contextfrom
agent/4-createagent-apps

Conversation

@MarioCadenas
Copy link
Copy Markdown
Collaborator

@MarioCadenas MarioCadenas commented Apr 16, 2026

Summary

  • createAgent(): high-level convenience wrapper around createApp with agent() + server() pre-wired. Normalizes single adapter to { assistant }. Returns AgentHandle with registerAgent, addTools, getTools, getThreads, and plugins.
  • agent-app: standalone reference application with React frontend, Databricks deployment config (databricks.yml), and TailwindCSS
  • dev-playground: adds an agent route with chat UI
  • API reference docs for all agent-related exports (createAgent, AgentHandle, adapters, tools, etc.)
  • Deploy script for agent-app to Databricks workspace

Note: the createAgent + agent() combo shipped here is superseded by PRs #294 (agents() plugin + pure createAgent(def)) and #299 (deletion of the old shortcut). This PR lands the transitional layer that the later stack then replaces with a cleaner surface.

PR Stack

  1. Shared types + Adapters — feat(appkit): add shared agent types and LLM adapter implementations #282
  2. Tool types + MCP client — feat(appkit): add FunctionTool, HostedTool types and MCP client #283
  3. Agent plugin core + ToolProvider implementations — feat(appkit): add agent plugin core and ToolProvider implementations #284
  4. PluginContext mediator — feat(appkit): add PluginContext mediator for inter-plugin communication #285
  5. createAgent + agent-app + docs (v1) (this PR)
  6. Plugin context-binding separation — refactor(appkit): separate plugin context binding from plugin construction #293
  7. agents() plugin + createAgent(def) + .toolkit()feat(appkit): add agents() plugin, createAgent() factory, and .toolkit() #294
  8. agent-app + docs migrated to agents()feat(appkit): migrate agent-app and docs to the new agents() plugin #295
  9. Relocate shared agent utilities — refactor(appkit): relocate shared agent utilities into plugins/agents #296
  10. preparePlugins forwards eager instance — refactor(appkit): forward eager plugin instance through preparePlugins #297
  11. fromPlugin() API — feat(appkit): add fromPlugin() for referencing plugin tools in code-defined agents #298
  12. Retire deprecated agent() + createAgentAppchore(appkit): remove deprecated agent() plugin and createAgentApp shortcut #299
  13. Retire toPluginWithInstance + bug fixes — refactor(appkit): retire toPluginWithInstance; consolidate on fromPlugin + fix schema/routing bugs #300

Test plan

  • 1678 tests pass
  • Typecheck clean
  • Biome lint clean

Add the final layer for building agent apps end-to-end:

- createAgent(): declarative one-call API that composes server + agent
  plugins, registers code-defined agents and tools, and starts the HTTP
  server with its REST API and SSE streaming.
- agent-app/: example app demonstrating createAgent with config-driven
  agents, function tools, and custom MCP servers.
- Use tool() and mcpServer() helpers in agent-app/server.ts:
  tool() with Zod schemas replaces the hand-written JSON Schema, and
  mcpServer(name, url) replaces the verbose custom_mcp_server wrapper.
- Regenerated typedoc API reference for the new public exports.
- Docs and guides for the agent plugin, tools, and adapter pattern.

Signed-off-by: MarioCadenas <MarioCadenas@users.noreply.github.com>
@MarioCadenas
Copy link
Copy Markdown
Collaborator Author

Superseded by the v2 6-PR stack:

  1. Shared agent types + LLM adapters — feat(appkit): shared agent types and LLM adapter implementations #301
  2. Tool primitives + ToolProvider surfaces — feat(appkit): tool primitives and ToolProvider surfaces on core plugins #302
  3. Plugin infrastructure (attachContext + PluginContext) — feat(appkit): plugin infrastructure — attachContext + PluginContext mediator #303
  4. agents() plugin + createAgent(def) + markdown-driven agents — feat(appkit): agents() plugin, createAgent(def), and markdown-driven agents #304
  5. fromPlugin() DX + runAgent plugins arg + toolkit-resolver — feat(appkit): fromPlugin() DX, runAgent plugins arg, shared toolkit-resolver #305
  6. Reference app + dev-playground + docs — feat(appkit): reference agent-app, dev-playground chat UI, docs, and template #306

The v2 stack reorganizes the same work so no PR ships API that a later PR deletes. Start at #301 for the new entry point. Branches from this older stack are preserved unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant