Skip to content

[appkit plugin] [3/x] Add appkit-agent documentation#385

Open
hubertzub-db wants to merge 5 commits intodatabricks:mainfrom
hubertzub-db:stack/agent-plugin-p3
Open

[appkit plugin] [3/x] Add appkit-agent documentation#385
hubertzub-db wants to merge 5 commits intodatabricks:mainfrom
hubertzub-db:stack/agent-plugin-p3

Conversation

@hubertzub-db
Copy link
Copy Markdown

@hubertzub-db hubertzub-db commented Mar 19, 2026

🥞 Stacked PR


Summary

Adds README.md for the @databricks/appkit-agent package covering:

  • Installation (including optional LangChain peer deps)
  • Quick start (minimal createApp + server() + agent() setup)
  • Configuration (model, systemPrompt, tools, agentInstance)
  • Function tools (local code with JSON Schema parameters + execute handler)
  • Hosted tools (Genie, Vector Search, custom/external MCP servers)
  • Dynamic tool addition via app.agent.addTools()
  • Programmatic API (invoke, stream)
  • Databricks Apps deployment (/invocations/api/agent aliasing)
  • Custom agent implementation via AgentInterface
  • Full API reference (exports table + types table)

@hubertzub-db hubertzub-db force-pushed the stack/agent-plugin-p3 branch from cc59fe8 to 22f46f4 Compare March 19, 2026 14:10
@hubertzub-db hubertzub-db changed the title docs [appkit] Add appkit-agent documentation Mar 19, 2026
@hubertzub-db hubertzub-db changed the title [appkit] Add appkit-agent documentation [appkit plugin] Add appkit-agent documentation Mar 19, 2026

## Databricks Apps Deployment

When deploying to Databricks Apps, alias the agent endpoint to `/invocations`:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably explain why (?) - to ensure Databricks product UIs support interacting with + chatting with the agent defined in the app

Copy link
Copy Markdown
Author

@hubertzub-db hubertzub-db Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sg, added an improved description

@hubertzub-db hubertzub-db force-pushed the stack/agent-plugin-p3 branch 9 times, most recently from f310a95 to 3aa9645 Compare March 20, 2026 13:58
@hubertzub-db hubertzub-db requested a review from smurching March 23, 2026 07:52
@hubertzub-db hubertzub-db changed the title [appkit plugin] Add appkit-agent documentation [appkit plugin] [3/x] Add appkit-agent documentation Mar 23, 2026
@hubertzub-db hubertzub-db force-pushed the stack/agent-plugin-p3 branch from 3aa9645 to 9729f32 Compare March 23, 2026 07:56
```typescript
// Genie Space — natural-language queries over your data
const genie = {
type: "genie-space" as const,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be genie_space not genie-space, right?

@@ -0,0 +1,246 @@
# @databricks/appkit-agent

Agent plugin for [Databricks AppKit](https://github.com/databricks/appkit). Provides two things:
Copy link
Copy Markdown
Collaborator

@smurching smurching Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Agent plugin for [Databricks AppKit](https://github.com/databricks/appkit). Provides two things:
Agent plugin for [Databricks AppKit](https://github.com/databricks/appkit). You can define an agent using one of the following approaches:


Agent plugin for [Databricks AppKit](https://github.com/databricks/appkit). Provides two things:

1. **`AgentInterface`** — a contract for writing custom agent implementations that speak the OpenAI Responses API format (streaming + non-streaming).
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. **`AgentInterface`** — a contract for writing custom agent implementations that speak the OpenAI Responses API format (streaming + non-streaming).
1. Declaratively define an agent by specifying `model`, `tools,` and `instructions`
2. Implement a custom agent loop using **`AgentInterface`** — a contract for writing custom agent implementations that speak the OpenAI Responses API format (streaming + non-streaming).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe good to frame things this way - developers probably don't care (and in the code it's not super visible right?) that they're using StandardAgent etc

agent({ agentInstance: new MyAgent() });
```

The `StandardAgent` class (exported from this package) is the built-in implementation that wraps a LangGraph `createReactAgent` and translates its stream events into Responses API format. When you pass `model` instead of `agentInstance`, the plugin uses `StandardAgent` under the hood.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can remove references to LangGraph to future-proof these docs (since we will likely change frameworks down the line)

Copy link
Copy Markdown
Collaborator

@smurching smurching left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs mostly look good! Minor comments, happy to stamp once addressed

Move agent plugin source code into src/agent-plugin/ subfolder for
better organization when hosting multiple plugins.
Signed-off-by: Hubert Zub <hubert.zub@databricks.com>
Signed-off-by: Hubert Zub <hubert.zub@databricks.com>
Signed-off-by: Hubert Zub <hubert.zub@databricks.com>
Signed-off-by: Hubert Zub <hubert.zub@databricks.com>
@hubertzub-db hubertzub-db requested a review from bbqiu April 1, 2026 11:44
@hubertzub-db hubertzub-db force-pushed the stack/agent-plugin-p3 branch from 25dfdc7 to 96a56f3 Compare April 1, 2026 13:26
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.

2 participants