Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
83d4061
add pydantic ai base agent along with cmr implementation
sanzog03 Apr 17, 2026
f0a42ac
uv lock
sanzog03 Apr 17, 2026
08d3b78
add mcp capability to pydantic ai based cmr agent
sanzog03 Apr 17, 2026
bea0a16
add diagram representing the pydantic ai base agent implementation
sanzog03 Apr 20, 2026
774977e
bump pydantic-ai floor to >=1.81.0 to match APIs in use
sanzog03 Apr 20, 2026
de607f7
Reorganize akd_ext.agents._base into package
NISH1001 Apr 20, 2026
3808b24
Adopt akd-core ConfigBindingMixin and protocols in pydantic_ai base
NISH1001 Apr 20, 2026
bc79516
Pin fastmcp<3.2.4 and add griffe<2
NISH1001 Apr 20, 2026
e62d7e3
feat(agents): propagate pydantic_ai RunContext through stream events
sanzog03 Apr 21, 2026
02c5b2e
add tests
sanzog03 Apr 21, 2026
44671c8
test to verify a real AKD tool adapts to pydantic_ai
sanzog03 Apr 21, 2026
528c7a3
updated diagram
sanzog03 Apr 21, 2026
4be957c
updated readme and docs
sanzog03 Apr 21, 2026
1c638fd
modify for PydanticAIBaseAgent minimal base runtime
sanzog03 Apr 22, 2026
ed7fd35
remove uncesssary comments
sanzog03 Apr 22, 2026
9ff389a
simplification of pai base
sanzog03 Apr 23, 2026
09986c3
Import at module-level instead of function-level in pai base
NISH1001 Apr 27, 2026
b2b8871
Upgrade uv.lock to latest akd-core develop
NISH1001 Apr 27, 2026
05881e2
remove one liners as function
sanzog03 Apr 27, 2026
7d9a50a
remove one liners as function for dependency injection
sanzog03 Apr 27, 2026
b44f8a5
update _wrap_pai_ctx to be a property
sanzog03 Apr 27, 2026
a6a3380
Merge remote-tracking branch 'origin/develop' into feature/pydantic_a…
NISH1001 Apr 27, 2026
5656bdb
a unified utils.py
sanzog03 Apr 27, 2026
4d90eba
Mirror pai messages onto RunContext.messages
NISH1001 Apr 27, 2026
572e3c2
Merge remote-tracking branch 'origin/feature/pydantic_ai_base_agent' …
NISH1001 Apr 27, 2026
0421785
only relying on system prompt provided via config
sanzog03 Apr 27, 2026
81d4d4e
Fix _tool_adapter import to _utils after rename
NISH1001 Apr 27, 2026
bfbefb6
Merge remote-tracking branch 'origin/feature/pydantic_ai_base_agent' …
NISH1001 Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

Misc extension to [akd-core](https://github.com/NASA-IMPACT/accelerated-discovery/).

## Documentation

- [Creating Agents](docs/development/creating_agents.md) — guide for building new agents on `OpenAIBaseAgent` or `PydanticAIBaseAgent`, including config, schemas, tools, capabilities, tests, and reference examples.

## Installation

### Using uv (recommended)
Expand Down
17 changes: 17 additions & 0 deletions akd_ext/agents/_base/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"""Base agent classes for akd_ext.

Two families live here:

- :class:`OpenAIBaseAgent` — built on the OpenAI Agents SDK (``openai``).
- :class:`PydanticAIBaseAgent` — built on :class:`pydantic_ai.Agent`.
"""

from akd_ext.agents._base.openai import OpenAIBaseAgent, OpenAIBaseAgentConfig
from akd_ext.agents._base.pydantic_ai import PydanticAIBaseAgent, PydanticAIBaseAgentConfig

__all__ = [
"OpenAIBaseAgent",
"OpenAIBaseAgentConfig",
"PydanticAIBaseAgent",
"PydanticAIBaseAgentConfig",
]
File renamed without changes.
20 changes: 20 additions & 0 deletions akd_ext/agents/_base/pydantic_ai/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"""Pydantic AI-backed agent base class for akd_ext.

Public API:

- :class:`PydanticAIBaseAgent` — subclass this to build new agents.
- :class:`PydanticAIBaseAgentConfig` — extend for subclass-specific config.

The subpackage also exposes internal helpers (``_tool_adapter``,
``_context_adapter``, ``_event_translator``, ``_capabilities``) that consumers
typically don't need to import directly. Structural protocols
(``AKDExecutable``, ``AKDTool``, ``RunContextProtocol``, ``TokenCounts``) are
sourced from ``akd._base.protocols``.
"""

from ._base import PydanticAIBaseAgent, PydanticAIBaseAgentConfig

__all__ = [
"PydanticAIBaseAgent",
"PydanticAIBaseAgentConfig",
]
Loading