Skip to content

Releases: nex-agi/NexAU

Release v0.4.0

24 Mar 07:19

Choose a tag to compare

  • Backport default parallel_tool_calls for Responses API (114c537)
  • fix(sandbox): expose public heredoc detection API to prevent shell-wr… (#429) (41a45fb)
  • style: fix ruff UP012 lint errors in test_read_file (6d34522)
  • fix(test): remove obsolete _detect_encoding tests and fix mocks for binary-only read_file (4b7d1fb)
  • fix(read_file): 修复 chardet 将 ascii/utf-7 误检导致文件读取编码异常 (#400) (b5f4072)
  • fix(read_file): add head output truncation and fix chat CLI build chain (#399) (581fb17)
  • fix: skip ToolSearch registration when no deferred tools exist (#367) (#388) (0c30b0c)
  • fix(sandbox): scriptify heredoc commands to prevent bash syntax errors in E2B (#387) (0cd853f)
  • style: fix ruff formatting and lint errors in test_read_file (e8ae35e)
  • fix: replace tautological assertion with mock-based chardet test (99ed9a5)
  • fix: layered encoding detection in read_file to prevent UnicodeDecodeError (21dd45b)

Release v0.4.1

01 Apr 03:51
265805b

Choose a tag to compare

  • bump version to 0.4.1 (#444) (265805b)
  • automation: weekly Project README sync (Fri 22:00) (#423) (dc46f03)
  • ci: unified project status workflow (Done + Cancelled) (#422) (5fb53d6)
  • feat(token-trace): support chat_template_kwargs for generate_with_token tokenization (#438) (1f48647)
  • fix: Agent.create() loses skill_registry after storage swap (#432) (5ff3cc3)
  • Remove glob from examples/code_agent/sub_agent.yaml (#430) (61f8fac)
  • fix(sandbox): expose public heredoc detection API to prevent shell-wr… (#429) (e2ffb41)
  • Remove glob from code example because search_file_content already include Glob function (#428) (bbf97b3)
  • fix: demote thinking blocks without signature to text blocks (#426) (f862729)
  • docs: add Async / Sync Usage Guide (#421) (0cd56e6)
  • fix(team): clarify leader prompt to output text before finish_team (#420) (dff0542)
  • 🔧 消除 async event loop nesting hell — 全链路 async/sync 分离 (#414) (2632df2)
  • fix(team): prevent /team/stream lock conflict on concurrent calls (#417) (31b783b)
  • fix: CompactionConfig.max_context_tokens 默认 None,fallback 到 AgentConfig (#411) (ead86eb)
  • fix(compaction): reject unknown config fields and cap hard truncation fallback (#407) (38d112e)
  • fix: preserve thinking-only responses when max_tokens is hit (#409) (acb24e6)
  • fix: resolve memory leaks in long-running agent sessions (#404) (d4f2bc8)
  • fix(anthropic): handle ServerToolUseBlock and buffer early input_json_delta for consistent tool_call_id (#406) (f9d492b)
  • fix(read_file): add head output truncation and fix chat CLI build chain (#399) (f1e964a)
  • fix(mcp): filter agent_state/global_storage in _execute_async (#402) (b556cc2)
  • fix(e2e): resolve force-stop test timeout (>120s) in CI (#396) (3a274c6)
  • fix(read_file): 修复 chardet 将 ascii/utf-7 误检导致文件读取编码异常 (#400) (9629c63)
  • fix(anthropic): handle None fields and concatenated JSON from eager_input_streaming (#395) (281079e)
  • feat(anthropic): enable eager_input_streaming for tool definitions (#394) (713ca83)
  • fix: sync intermediate messages to HistoryList on executor exception (#391) (002bbdc)
  • feat(building-team): server-side snapshot reducer for event history (#389) (fff0b1b)
  • fix(sandbox): scriptify heredoc commands to prevent bash syntax errors in E2B (#387) (f2c9b83)
  • fix: skip ToolSearch registration when no deferred tools exist (#367) (#388) (e128e77)
  • feat(compaction): add Langfuse tracer spans and propagate global_storage/session_id (#386) (a9c31fc)
  • fix: layered encoding detection in read_file to prevent UnicodeDecode… (#382) (84aa19c)
  • fix(compaction): place summary message at beginning instead of end of kept messages (#383) (cf7db7d)
  • feat: add awaitable flush_async to HistoryList (#384) (91960d6)
  • fix(session): defensive error handling in AgentLockService lock release (#353) (0063f69)
  • feat: align usage accounting with opencode semantics (#368) (ddf3b42)
  • [feat] RFC-0009: add token-generate trace memory flow (#312) (294d81d)
  • fix: bypass LoadSkill in LongToolOutputMiddleware by default (#381) (7b13e54)
  • feat: inject session_id into LLM provider payloads (#374) (0e141a2)
  • fix: handle multimodal list content in _prepare_responses_api_input() (#373) (97ec7df)
  • docs: add RFC-0013 for RunCode REPL sessions (#371) (8be8eb5)
  • fix(ci): resolve project item before setting Cancelled (#362) (09d2c02)
  • Update code_agent example param and prompt (#361) (b4ccaa8)
  • fix(ci): sync project Cancelled for duplicate/not planned issues (#359) (7edd363)
  • feat: RFC-0011 add MODEL_USAGE events and persist usage metadata (#326) (946191f)
  • bump to 0.4.0 (#352) (420e486)
  • fix(e2b): harden E2B sandbox against proxy/gateway connection timeouts (#349) (2da9456)
  • fix: preserve LLMConfig api_type when copying (#347) (#348) (3d9808e)
  • feat(rfc-0006): implement neutral structured tool calling (#339) (cea42cb)
  • fix: skip unnecessary skill folder upload for local sandbox (#344) (67f62c8)
  • feat: implement Tool Search (RFC-0005) (#297) (b76c74b)
  • update code agent example (#336) (eeda837)
  • nit: Example Code Agent uses openai_chat_completion (#335) (299f427)
  • fix: Agent Team should only stop at finish_team (#332) (ef36562)
  • fix(langfuse): cap incompatible v4 resolution (#330) (43e5b34)
  • feat: add cache control TTL parameter to LLMConfig (#327) (1ad55b6)
  • fix(shell-tools): harden stop cleanup and shell cancellation (#325) (b4371ce)
  • fix: coerce tool call arguments to string in Responses API input (#329) (14ce3be)
  • feat: enhance system prompt with cache control and multi-format support (#317) (a144089)
  • fix: remove empty content fields from messages for provider compatibility (#315) (e822d1a)
  • fix: raise detailed ValueError on tool parameter schema errors (#316) (4dd4519)
  • fix: avoid sandbox uploads for in-memory as_skill loads (#322) (3e92a3e)
  • feat: context overflow emergency compaction + token counter block migration (#278) (41190b0)

Release v0.3.9

09 Mar 04:04
35ee186

Choose a tag to compare

  • Revert version tag change 0.3.9-hotfix (#307) (35ee186)
  • tag version 0.3.9-hotfix (#305) (ee09503)
  • fix: mock Langfuse env vars in code agent integration test (#304) (cb39dfa)
  • feat: support structured as_skill modes (#303) (9d6f76c)
  • fix: remove silent 30k char truncation in sandbox read_file (#302) (8002662)
  • fix: convert Path to str in BaseSandbox.dict() for JSON serialization (#299) (9623eaa)
  • RFC-0005: Tool Search — 工具按需动态注入 (#276) (e7cd9b1)
  • fix: cherry-pick sliding window compaction fixes (#293) (9079931)
  • fix(ci): use GITHUB_TOKEN for milestone workflow (#296) (51f67e1)
  • feat: add apply_patch builtin tool (OpenAI Codex compatible) (#294) (6f57586)
  • bump to 0.3.9 (#295) (ddf2a31)
  • remove respect_gemini_ignore from builtin tools (#291) (cc8c21c)
  • feat: auto set project status to Cancelled on issue close (not planned/duplicate) (#289) (73302d0)
  • update default head_chars and tail_chars of LongToolOutputMiddleware (#285) (9bcc38f)
  • Optimize LongToolOutputMiddleware w/ head_chars and tail_chars (#284) (f850452)
  • Fix Missing phase field when using OpenAI Responses API Streaming (#282) (1e36489)
  • [fix]retry and timeout not work (#279) (924300e)
  • Remove PDF support from read_file (#275) (0e990c0)
  • refactor: split read_file into text-only read_file and multimodal read_visual_file (#273) (d540a6b)
  • fix(middleware): exclude returnDisplay from LongToolOutputMiddleware length measurement (#274) (084a3ca)
  • fix(tracer): use generation type for LLM spans and add TTFT mapping (#261) (1483be2)
  • Optimize Agent Team: new frontend design, fix watchdog loop after finish_team, support context vars, optimize sandbox work_dir (#262) (fced6c0)
  • chore: remove builtin Feishu/Lark tools and lark_oapi dependency (#264) (c6409fc)
  • feat: context overflow emergency compaction + token counter block migration (#266) (9178f2b)
  • feat(middleware): add LongToolOutputMiddleware for truncating oversized tool outputs (#253) (1dc82e7)
  • fix: update team tool yaml packaging config (#259) (359ef7a)

Release v0.3.8

02 Mar 09:24
6ce0784

Choose a tag to compare

  • ci: milestone-iteration-tag automation (#251) (6ce0784)
  • fix: lint error of tests/unit/test_agent_run_id.py (#252) (7a5d7c7)
  • bump to v0.3.8 (#250) (f59ac03)
  • feat(agent): add run_id parameter to Agent.run_async (#249) (2a80a73)
  • ci: auto move Backlog→Todo when Iteration is set (#248) (93e58f0)
  • feat: LLM failover middleware (RFC-0003) (#243) (5a92bfb)
  • fix: strip returnDisplay from tool results before sending to LLM (#242) (2d12432)
  • fix: Anthropic thinking_delta + local sandbox graceful shutdown + remove tool_cache (#239) (1eb0aba)
  • CI: wire E2B_SELFHOST_DOMAIN for self-host sandbox tests (#237) (cef423e)
  • Anthropic Event Aggregator (#232) (a57aacc)
  • RFC-0002: AgentTeam — 多 Agent 协作框架 (#230) (fedfa9d)

  • fix: handle split id/name chunks in tool call streaming aggregator (#218) (d1b49fb)
  • feat: E2B sandbox stability improvements + glob fix + 94% test coverage (#217) (8b62887)
  • feat(sandbox): support save bash tool output(stdout, stderr) to temp file (#212) (09c2691)
  • fix: E2B self-host sandbox connection issues (#215) (2b31389)
  • feat: typed sandbox config (LocalSandboxConfig & E2BSandboxConfig) (#208) (c605854)
  • RFC-0001: Agent 中断时状态持久化 (#211) (c2c1c47)

  • Refactor/builtin tools sandbox (#203) (a400954)
  • feat: add include=reasoning.encrypted_content to Responses API requests (#210) (348c146)
  • feat: NexTask customizations - Anthropic thinking passthrough, robustness & compaction improvements (#209) (bfd69fc)

v0.3.7

02 Mar 08:41
8ef0264

Choose a tag to compare

Full Changelog: v0.3.6...v0.3.7

Release v0.3.6

12 Feb 16:38
1264c97

Choose a tag to compare

Use json repair to fix malformed tool arguments (#161)

Release v0.3.5

25 Dec 07:55
48b961b

Choose a tag to compare

  • fix: add ensure_ascii=False to json.dumps in token_counter (#142) (48b961b)
  • Langfuse client late init and fix otel ctx propagation (#141) (9da058c)
  • bump version to 0.3.5 (#140) (c0b794c)
  • refactor: optimize AgentConfig structure and AgentCreate logic (#136) (4fcc3ae)
  • Fix tool timeout (#139) (8a75260)
  • Support lazy tool binding (#138) (f961dce)
  • Support custom_llm_client_provider (#132) (c4acd47)
  • [feat]add round and token reminder middleware (#134) (d48ffa4)
  • add todos for todowrite (#133) (56b50fd)
  • Allow binding in tool yaml (#131) (287d8a9)
  • change TokenCounter to handle token counting for tool definitions and tool calls in assistant message. (#128) (71f4f96)
  • add cli agent_runner to package (#129) (2b83534)
  • Fix bug: mcp tools not injected to tools when using tool_call format (#127) (cfb713d)
  • fix: incorrect http header for Streamable Http request (#125) (cfbe2ed)
  • Workaround of Langfuse bug: generation type events may be lost when using new api (#126) (6f99418)
  • Add runtime tool injection and typed structured tool payloads (#123) (24a5356)
  • Add missing tool description yaml to package (#124) (0add646)
  • Reset executor._shutdown_event when 2nd round agent run (#122) (c539dce)
  • Add before/after agent middleware hooks and related input classes (#119) (6afd430)
  • Fix typing errors to enable pyright strict (#120) (ae7afad)

Release v0.3.4

07 Dec 09:31
bba434f

Choose a tag to compare

  • Fix RunCode typing issue (#121) (bba434f)
  • add extra kwargs support in agent config (#117) (bb5a2a6)
  • Fix ruff check (#118) (c2138e5)
  • allow setting variables in the yaml file (#116) (b37c4a6)
  • Move before_model_hook before context token count check (#115) (0326173)
  • add the markdown documentation for context compaction (#114) (085b6f6)
  • Support Passive Context Compression (#111) (e139c50)
  • Refine lint/type tooling config (#112) (aae7761)
  • bump to 0.3.4 (#113) (76a0b32)
  • remove todos from index.md (#110) (889cb5f)
  • fix end tool remark logic (#109) (47716f6)
  • Langfuse Tracer supports user_id, tags (#108) (2f94511)
  • Support Langfuse session_id (#107) (929ecdf)
  • Fix InMemoryTracer lost sub-agent spans (#106) (11be6cf)
  • Add InMemoryTracer (#105) (5cde291)
  • Refactor langfuse tracer (#104) (95e6aa7)
  • Remove tracer for later refactor (#103) (69d62dc)
  • bump version to 0.3.3 (#102) (cb2a5ce)
  • override tool name with agent config's tool name (#101) (74ed7f3)
  • fix hook with no params fail with non-exist hook (#100) (31a2562)
  • Fix example deep research yaml (#99) (2f7dbb3)
  • Support stream and stream_chunk hook (#97) (062f596)
  • Add type:agent/tool for config yaml files (#96) (4f5d817)
  • nexau to NexAU when used in nex-agi/NexAU repo (#94) (f70cbd1)
  • bump version to 0.3.2 (#93) (29e4570)
  • update code agent yaml for more hints (#92) (a77bb9e)
  • Update code agent example prompt (#91) (3b5a1ad)
  • Update NexAU README example (#90) (38c1629)
  • Fix Pythonic trace and add pythonic example in Readme (#89) (be03d15)
  • Remove python shebang (#88) (f60e967)
  • add CN readme (#87) (a79b189)
  • bump version to 0.3.0 (#86) (c17e438)
  • remove wrong license (#85) (3a7b48d)
  • remove wrong license (449cf20)
  • use NexAU in examples and Readme (#84) (bfed012)
  • Add license header to all py, sh, js files (#83) (838f297)
  • add Apache 2.0 license (#82) (a37f964)
  • Fix langfuse span naming bug (#81) (a99df3f)
  • support env var in config (e0c9134)
  • force_stop when force_stop_reason != AgentStopReason (#79) (4dd9c6e)
  • fix(llm_caller): add early return for forced stop in _call_with_retry (#77) (c7bb053)
  • bump version (06d0fb6)
  • Revert "add pypi release" (68c974c)
  • add pypi release (1323b48)
  • replace nex-agito nex-agi/ (#76) (a664b5f)
  • rename fake_claude_code to code_agent (#75) (d471c98)
  • Remove builtin old hooks (#74) (03022e0)
  • update wrap_xxx_hooks to call passthrough instead return wrapped fn (#73) (8c1246a)
  • add description to AgentConfig (#72) (989b7cd)
  • Refactor to use Middleware to allow multiple types of hooks (#71) (e9f8d13)
  • 添加了强制继续执行的agent选项,参数force_continue。 (#70) (725bb02)
  • Use Pydantic Model to define configs (#69) (71875d5)
  • execute hook after tool (#68) (fa645e3)
  • rename from northau to nexau (b4c1e75)
  • format (9d9edab)
  • Support reasoning_content in openai chat completion, and properly catch tokens (abdad7c)
  • remove default temperature from llm config (#65) (62a2cc3)
  • Support Responses API (#64) (e71c41c)
  • add anthropic api (#57) (bbeae02)
  • Fix typo: Skils -> Skills (56087c5)
  • misspelling "skils" (b212ca3)
  • CLI: show subagent panel (#62) (fa8c423)
  • Support sub-agent panel in cli (#61) (65330aa)
  • support structured tool call (#60) (7b117b1)
  • support additional_drop_params in LLMConfig (#59) (c84e4c0)
  • Add fallback support to SSE (#58) (d088b3d)
  • add northau-cli into package build (#56) (e3f4add)
  • Add NorthAU CLI for easy agent test (#54) (790f7e3)
  • fix trace_id for multiple runs (#55) (cdfb7ad)
  • fix history override in multi-turn run (#53) (869115b)
  • feat: lazy load tool module (#52) (4a0120b)
  • disable use_batch_agent for main branch (#51) (ed82a80)
  • fix cc example for wrong yaml format and add system_prompt_type checker (#50) (2522a5f)
  • update readme with cc example (#49) (ae9b8a2)
  • Support Skill (#48) (551a439)
  • remove releasing script (#47) (e47c764)
  • add uv install (#46) (1ce48bf)
  • update readme for release install (#45) (d6f52fa)
  • add release workflow (#44) (d93ab66)
  • add tests and format check (#43) (bedcf19)
  • add jinja prompt files to package (#42) (057f8c0)
  • remove unnecessary fallbacks (#41) (1e85a55)
  • Update index.md todos (#40) (29301a5)
  • Update mcp.md (#39) (babb27c)
  • Reorg readme files (#38) (987c2f9)
  • add vars when load yaml (#37) (05c2f52)
  • modify tool call id and run code kernel id (#36) (eea1e89)
  • add tool_call_id to AfterToolHookInput (#35) (fd2fa4a)
  • update tool call parser with regex (#32) (935c2c1)
  • nit (7f8cb52)
  • feat(agent): add BeforeModelHook; Support run_code_tool (#34) (b997285)
  • rename HookResult to AfterModelHookResult; add parent_agent_state to AgentState (#33) (6eafa82)
  • support mcp from yaml (cf24d6b)
  • add agent stop reason (#31) (cea36dd)
  • add diskcache to pyproject (38397dc)
  • nit (c419c73)
  • add stop interface (#30) (e85dd2f)
  • fix(mcp): adapt for non-standard mcp server (#29) (c360427)
  • feat(tool): support tool call cache (#28) (5f77d94)
  • Stop xml parsing inside tool parameter (ea0aecc)
  • remove <sub_agent> and <use_parallel_sub_agent> (#27) (e834f5d)
  • refine todowrite prompt example (4941cdc)
  • remove state and config from README.md (8fec738)
  • fix lint (3b6b52a)
  • add .pre-commit-config.yaml (9a6fad8)
  • remove config, update global_storage from config (#26) (1f46cf3)
  • remove config and state (#25) (b1f5370)
  • Refactor config loader (#24) (5df28c0)
  • Refactor Executor (#23) (89b6d14)
  • when token budget insufficient custom_llm_generator should see it (#22) (0dfd5ba)
  • add tool_call_id (#21) (f02a31e)
  • refactor config and prompt builder (#20) (4bd0644)
  • fix missing global_storage in tool params (0643fc2)
  • nit (745a338)
  • update README with after tool hook (bd88f34)
  • add agent_name and agent_id to hooks (5090fef)
  • add custom_llm_generator (ac3e971)
  • Support AfterToolHook (33564b0)
  • support queuing messages (a7b2cd2)
  • Update agent override logics to agent_name matching (ade64f5)
  • Skip validating params not listed in schema yaml (308c0c8)
  • Fix Grep tool args (6026ab7)
  • bugfix: add ctx to subagent (#19) (8c4316a)
  • add fastmcp as dependency (d991093)
  • Support both SSE and JSON HTTP MCP (907087c)
  • add subagent trace (#18) (cc30a09)
  • fix MCP http streamable support issue (ee6b0c0)
  • nit (3862c99)
  • remove debug print (#17) (e47eaf0)
  • Fix MCP client request id and remove global_storage param (#16) (54c0178)
  • Fix xml parser (ca92373)
  • nit (0fb2185)
  • fix system_prompt loader error (3049d47)
  • add global_storage for load_agent_config (2bd7b78)
  • support access global_storage from tool (05c36ad)
  • nit (31700d5)
  • nit (55a8173)
  • solve race condition between key locks and global lock (e0b27ad)
  • support GlobalStorage (7f2e020)
  • refactor variable name (cde719d)
  • support plain textual tool defination (7f85971)
  • remove web_reader, use web_tool's web_read instead (cd6b093)
  • load_dotenv in config_loader.py (1875577)
  • add build_token_limit_hint (43bbc6b)
  • Bug fix: Could not register signal handlers (not in main thread) (c54d6c0)
  • Replace sub-agent with sub_agent (b7debe5)
  • Update README.md (d96ac39)
  • nit (8c48698)
  • nit (4981938)
  • nit (689034b)
  • add tool_after_approve_hook (959ee90)
  • add tool_after_approve_hook (30284de)
  • support after_model_hook (460b88a)
  • move prompt templates to prompts/ subfolder from agent.py (9ad8792)
  • remove jinja available check (92b5e78)
  • code refactor (be06ef2)
  • nit (3be0f24)
  • nit (2915b20)
  • update todo, add stop split (8343c58)
  • nit (6459125)
  • add some feature, like openai call retry, initial state, config and context (c62a340)
  • fix missing max_iterations (5033f08)
  • support dump trace file and subagent (folder) (09d525a)
  • token counter, kill sub-agent if main stop (ea84dc5)
  • fix tool parsing (0c2a934)
  • limit subagent concurrency (780e69d)
  • limit subagent concurrency (2939490)
  • limit output length of ls, glob, grep (c97f196)
  • add batch sub agent launch (b746e5d)
  • refine parallel tool_use and agents (253d427)
  • sub-agent uses factory instead of instantiated (74cf037)
  • fix minimax example (e665969)
  • fix grep_tool (9f9fc80)
  • fix feishu get_chat_user_mapping tool (1b9d969)
  • fix file tool (f2b0806)
  • fix: Add environment variable support for model and base_url in LLMConfig (c2c3a19)
  • Parallel tool/sub-agent/mcp calls (e6e3ea4)
  • remove deprecated llm config in Agent init args (98f07db)
  • langfuse eval example doc (1eaedd1)
  • use langfuse dataset and eval to replace builtin (e350665)
  • rm nit files (2284399)
  • support multiple system prompts (7e4cec6)
  • update dataitem interface (2769f4b)
  • add evaluator and prompt_hacking example (fc6f4a0)
  • add "deep research" to voice mcp example (5f191e9)
  • add feishu tool as builtin (f1ad79e)
  • add allvoicelab mcp example (8d7c753)
  • fix init handshake (157f46b)
  • add github mcp (76cd6d6)
  • fix stdio mcp connection issue (652917b)
  • update Readme (b2d0a73)
  • update Readme (7275797)
  • add AgentContext operation to README.md (258b68e)
  • fix exec example uv package not found issue (0a5b3a1)
  • update README.md (0ea740f)
  • add mcp support (629b3c6)
  • reorg example files (be20329)
  • fix xml parsing issue (8017de3)
  • claude-code like agent example (068f3f0)
  • use extracted_text of web parser (59e92d6)
  • rename exmaple (a82e6e0)
  • delete files (efd7a15)
  • init commit (c4a2858)

Release v0.3.3

21 Nov 14:41
4658882

Choose a tag to compare

  • bump version to 0.3.3 (#102) (4658882)
  • override tool name with agent config's tool name (#101) (73b00c3)
  • fix hook with no params fail with non-exist hook (#100) (cd5748a)
  • Fix example deep research yaml (#99) (d3efc46)
  • Support stream and stream_chunk hook (#97) (235605c)
  • Add type:agent/tool for config yaml files (#96) (53a5c77)
  • nexau to NexAU when used in nex-agi/NexAU repo (#94) (93ebc84)
  • bump version to 0.3.2 (#93) (591373d)
  • update code agent yaml for more hints (#92) (0401877)
  • Update code agent example prompt (#91) (7952547)
  • Update NexAU README example (#90) (868c6bb)
  • Fix Pythonic trace and add pythonic example in Readme (#89) (f206e9d)
  • Remove python shebang (#88) (013f268)
  • add CN readme (#87) (2e9befa)
  • bump version to 0.3.0 (#86) (4b5ff1b)
  • remove wrong license (#85) (5736d1d)
  • remove wrong license (59751d5)
  • use NexAU in examples and Readme (#84) (5725d7a)
  • Add license header to all py, sh, js files (#83) (1ad1205)
  • add Apache 2.0 license (#82) (46425d9)
  • Fix langfuse span naming bug (#81) (076b029)
  • support env var in config (f8030c3)
  • force_stop when force_stop_reason != AgentStopReason (#79) (b50cf49)
  • fix(llm_caller): add early return for forced stop in _call_with_retry (#77) (ea6af58)
  • bump version (73bcd1d)
  • Revert "add pypi release" (f39b9ea)
  • add pypi release (366b03c)
  • replace china-qijizhifeng to nex-agi/ (#76) (a0d984b)
  • rename fake_claude_code to code_agent (#75) (4afcdef)
  • Remove builtin old hooks (#74) (35a5a7d)
  • update wrap_xxx_hooks to call passthrough instead return wrapped fn (#73) (cea8d3b)
  • add description to AgentConfig (#72) (100db0e)
  • Refactor to use Middleware to allow multiple types of hooks (#71) (df79859)
  • 添加了强制继续执行的agent选项,参数force_continue。 (#70) (524fd93)
  • Use Pydantic Model to define configs (#69) (bf656f3)
  • execute hook after tool (#68) (12d6f1b)
  • rename from northau to nexau (b4ce545)
  • format (b943054)
  • Support reasoning_content in openai chat completion, and properly catch tokens (784738e)
  • remove default temperature from llm config (#65) (62a0d55)
  • Support Responses API (#64) (608df84)
  • add anthropic api (#57) (f266890)
  • Fix typo: Skils -> Skills (2cf9ebe)
  • misspelling "skils" (746df6d)
  • CLI: show subagent panel (#62) (1db622d)
  • Support sub-agent panel in cli (#61) (981354b)
  • support structured tool call (#60) (373ce11)
  • support additional_drop_params in LLMConfig (#59) (1e6ba93)
  • Add fallback support to SSE (#58) (05016ef)
  • add northau-cli into package build (#56) (2ac8769)
  • Add NorthAU CLI for easy agent test (#54) (7b749aa)
  • fix trace_id for multiple runs (#55) (83345c6)
  • fix history override in multi-turn run (#53) (4beead6)
  • feat: lazy load tool module (#52) (d271003)
  • disable use_batch_agent for main branch (#51) (b77ed98)
  • fix cc example for wrong yaml format and add system_prompt_type checker (#50) (ed8e891)
  • update readme with cc example (#49) (4a05f55)
  • Support Skill (#48) (9cd39b8)
  • remove releasing script (#47) (dd0fe76)
  • add uv install (#46) (b0e43cd)
  • update readme for release install (#45) (ae440d4)
  • add release workflow (#44) (543e8a8)
  • add tests and format check (#43) (fa19802)
  • add jinja prompt files to package (#42) (611983f)
  • remove unnecessary fallbacks (#41) (9bfc268)
  • Update index.md todos (#40) (8dfee25)
  • Update mcp.md (#39) (cf8e673)
  • Reorg readme files (#38) (561f582)
  • add vars when load yaml (#37) (1fe470a)
  • modify tool call id and run code kernel id (#36) (4a79caa)
  • add tool_call_id to AfterToolHookInput (#35) (a1b18d6)
  • update tool call parser with regex (#32) (2a54376)
  • nit (ee30576)
  • feat(agent): add BeforeModelHook; Support run_code_tool (#34) (8fd7a50)
  • rename HookResult to AfterModelHookResult; add parent_agent_state to AgentState (#33) (0b80b68)
  • support mcp from yaml (92378cd)
  • add agent stop reason (#31) (0028940)
  • add diskcache to pyproject (35f85bb)
  • nit (e021961)
  • add stop interface (#30) (777ad1d)
  • fix(mcp): adapt for non-standard mcp server (#29) (61666c3)
  • feat(tool): support tool call cache (#28) (f676be9)
  • Stop xml parsing inside tool parameter (a9758a6)
  • remove <sub_agent> and <use_parallel_sub_agent> (#27) (8c32bda)
  • refine todowrite prompt example (49646a3)
  • remove state and config from README.md (a75e848)
  • fix lint (0074fc7)
  • add .pre-commit-config.yaml (7e4d5d3)
  • remove config, update global_storage from config (#26) (c5097ac)
  • remove config and state (#25) (39dc56d)
  • Refactor config loader (#24) (417e4b0)
  • Refactor Executor (#23) (7c3631d)
  • when token budget insufficient custom_llm_generator should see it (#22) (cdd8032)
  • add tool_call_id (#21) (3244987)
  • refactor config and prompt builder (#20) (f2d83ff)
  • fix missing global_storage in tool params (b27384f)
  • nit (f21c814)
  • update README with after tool hook (9c4effe)
  • add agent_name and agent_id to hooks (2630475)
  • add custom_llm_generator (03cadf1)
  • Support AfterToolHook (3796b36)
  • support queuing messages (e4d5861)
  • Update agent override logics to agent_name matching (b0d596e)
  • Skip validating params not listed in schema yaml (e657ee6)
  • Fix Grep tool args (5c61d47)
  • bugfix: add ctx to subagent (#19) (0df81ba)
  • add fastmcp as dependency (4c4e302)
  • Support both SSE and JSON HTTP MCP (e870e47)
  • add subagent trace (#18) (1157455)
  • fix MCP http streamable support issue (8e64fcf)
  • nit (76ad743)
  • remove debug print (#17) (3610f9d)
  • Fix MCP client request id and remove global_storage param (#16) (f63eda4)
  • Fix xml parser (b71433a)
  • nit (76dfaf6)
  • fix system_prompt loader error (65a237c)
  • add global_storage for load_agent_config (130dd8e)
  • support access global_storage from tool (e955597)
  • nit (7fa882c)
  • nit (145f2e7)
  • solve race condition between key locks and global lock (a894818)
  • support GlobalStorage (c3fcaed)
  • refactor variable name (df955c8)
  • support plain textual tool defination (8abb64f)
  • remove web_reader, use web_tool's web_read instead (b9b0d0d)
  • load_dotenv in config_loader.py (7ef4f84)
  • add build_token_limit_hint (8ff1db3)
  • Bug fix: Could not register signal handlers (not in main thread) (ec1b474)
  • Replace sub-agent with sub_agent (21e4ddf)
  • Update README.md (655226e)
  • nit (8b8de55)
  • nit (8210719)
  • nit (a8391e7)
  • add tool_after_approve_hook (04c0ffc)
  • add tool_after_approve_hook (86a9c17)
  • support after_model_hook (2f0ecde)
  • move prompt templates to prompts/ subfolder from agent.py (ea61fd7)
  • remove jinja available check (347714d)
  • code refactor (bb5816e)
  • nit (69b5fab)
  • nit (74a8c1a)
  • update todo, add stop split (ce37b6c)
  • nit (c70e48d)
  • add some feature, like openai call retry, initial state, config and context (9ee8ad2)
  • fix missing max_iterations (222c10e)
  • support dump trace file and subagent (folder) (7f1c5e2)
  • token counter, kill sub-agent if main stop (5e27c5a)
  • fix tool parsing (bb5e56e)
  • limit subagent concurrency (d9fbab8)
  • limit subagent concurrency (b95f8e1)
  • limit output length of ls, glob, grep (16f71d4)
  • add batch sub agent launch (2f98dec)
  • refine parallel tool_use and agents (13e15a1)
  • sub-agent uses factory instead of instantiated (32e9cfd)
  • fix minimax example (e665969)
  • fix grep_tool (9f9fc80)
  • fix feishu get_chat_user_mapping tool (1b9d969)
  • fix file tool (f2b0806)
  • fix: Add environment variable support for model and base_url in LLMConfig (c2c3a19)
  • Parallel tool/sub-agent/mcp calls (e6e3ea4)
  • remove deprecated llm config in Agent init args (98f07db)
  • langfuse eval example doc (1eaedd1)
  • use langfuse dataset and eval to replace builtin (e350665)
  • rm nit files (2284399)
  • support multiple system prompts (7e4cec6)
  • update dataitem interface (2769f4b)
  • add evaluator and prompt_hacking example (fc6f4a0)
  • add "deep research" to voice mcp example (5f191e9)
  • add feishu tool as builtin (f1ad79e)
  • add allvoicelab mcp example (8d7c753)
  • fix init handshake (157f46b)
  • add github mcp (76cd6d6)
  • fix stdio mcp connection issue (652917b)
  • update Readme (b2d0a73)
  • update Readme (7275797)
  • add AgentContext operation to README.md (258b68e)
  • fix exec example uv package not found issue (0a5b3a1)
  • update README.md (0ea740f)
  • add mcp support (629b3c6)
  • reorg example files (be20329)
  • fix xml parsing issue (8017de3)
  • claude-code like agent example (068f3f0)
  • use extracted_text of web parser (59e92d6)
  • rename exmaple (a82e6e0)
  • delete files (efd7a15)
  • init commit (c4a2858)

Release v0.3.2

19 Nov 02:50

Choose a tag to compare

init commit