You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 866fdcf
Browse filesBrowse the repository at this point in the historyBrowse files
Resolves two conflicts with #217 (Claude Agents skills handler on the
package root): `__init__.py` keeps both the `_write_skills` re-export
and the `config_skills` import, and `_skill_refs`'s docstring names
both of its callers, the handler and the source `config_skills` builds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: packages/claude-agents/README.md
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,18 +131,14 @@ async def main():
131
131
asyncio.run(main())
132
132
```
133
133
134
-
## Agent Skills (experimental)
135
-
136
-
> **Experimental.** Imported from `launchdarkly_ai_claude_agents.experimental.skills`. The name and behavior may change in a minor release, and each change is listed under **Experimental** in the changelog.
134
+
## Agent Skills
137
135
138
136
`create_claude_agents_handler()` doesn't give the model a variation's skills. `create_claude_agents_skills_handler()` does. It takes the same options, plus `skills_temp_dir`.
139
137
140
138
```python
141
139
import os
142
140
from launchdarkly_ai_server import FDv2SkillStore, config, set_skill_store
143
-
from launchdarkly_ai_claude_agents.experimental.skills import (
144
-
create_claude_agents_skills_handler,
145
-
)
141
+
from launchdarkly_ai_claude_agents import create_claude_agents_skills_handler
146
142
147
143
store = FDv2SkillStore(os.environ["LD_SDK_KEY"]).start()
|`src/launchdarkly_ai_claude_agents/builtins.py`| Pre-constructed `NativeTool` sentinels for Claude built-in tools |
33
-
|`src/launchdarkly_ai_claude_agents/experimental/skills.py`|Experimental `create_claude_agents_skills_handler()`. Not imported by the package `__init__.py`|
33
+
|`src/launchdarkly_ai_claude_agents/skills.py`|`create_claude_agents_skills_handler()`, exported from the package root|
`create_claude_agents_skills_handler(...)` is importable only from `launchdarkly_ai_claude_agents.experimental.skills`, and the package root never imports it (a test checks this in a fresh interpreter). It reports `experimental.createClaudeAgentsSkillsHandler` and builds the handler through `_create_claude_agents_handler(..., _prepare=...)`.
174
+
`create_claude_agents_skills_handler(...)` is exported from the package root. It reports `claude-agents.createClaudeAgentsSkillsHandler` and builds the handler through `_create_claude_agents_handler(..., _prepare=...)`.
175
175
176
-
`_prepare` is a package-internal hook, a private keyword argument of the internal factory only, so core names nothing experimental. It runs at the start of every invoke and stream, inside the `invoke_agent` span, and returns `None` (the run is exactly the core handler's) or a `QueryPreparation`. That holds extra `query()` options, extra built-ins appended to `tools` (never to `allowed_tools`), and a `cleanup` that both paths await last in their `finally`.
176
+
`_prepare` is a package-internal hook, a private keyword argument of the internal factory only, so `create_claude_agents_handler`'s signature stays unchanged. It runs at the start of every invoke and stream, inside the `invoke_agent` span, and returns `None` (the run is exactly the core handler's) or a `QueryPreparation`. That holds extra `query()` options, extra built-ins appended to `tools` (never to `allowed_tools`), and a `cleanup` that both paths await last in their `finally`.
0 commit comments